sys.indexes主要保存索引和主键等值,并保存有判断是否为主键的列。
sys.index_columns主要用保存sys.indexes视图内对应的主键等列的index_id的信息。
具体实现为:
select t4.name as columnname from --t4.name 列名
sys.tables t1 --t1 存储对应数据库里所有用户表
left outer join
sys.indexes t2 --t2 存储对应数据库里所有索引和主键
on
t1.object_id = t2.object_id --object_id 表对象相应的编号
left outer join
sys.index_columns t3 --index_columns 表索引及主键相应的列信息
on
t2.object_id = t3.object_id
and t2.index_id = t3.index_id
left outer join
sys.columns t4 --t4 存储数据库内所有用户表的列值信息
on
t3.object_id = t4.object_id
and t3.column_id = t4.column_id
where
t1.name = 'M_Class' -- t1.name 表名
and t2.is_primary_key = 1 -- t2.is_primary_key 是否为主键
order by t4.column_id -- 按照列编号进行输出