t-sql 查找一个数据库下所有表下字段类型为GUID且索引为聚集索引的主键

select  TableId = O.[object_id],
TableName = O.Name,
IndexId = isnull(KC.[object_id],IDX.index_id),
IndexName = IDX.Name,
IndexType = isnull(KC.type_desc,'Index'),
Index_Column_id = IDXC.index_column_id,
ColumnID = C.Column_id,
ColumnName = C.Name,
Sort = case indexkey_property(IDXC.[object_id],IDXC.index_id,
IDXC.index_column_id,'IsDescending')
when 1 then 'DESC'
when 0 then 'ASC'
else ''
end,
PrimaryKey = case when IDX.is_primary_key=1 then N''
else N''
end,
[UQIQUE] = case when IDX.is_unique=1 then N''
else N''
end,
Ignore_dup_key = case when IDX.ignore_dup_key=1 then N''
else N''
end,
Disabled = case when IDX.is_disabled=1 then N''
else N''
end,
Fill_factor = IDX.fill_factor,
Padded = case when IDX.is_padded=1 then N''
else N''
end,
T.name,IDX.type_desc
from sys.indexes IDX
inner join sys.index_columns IDXC
on IDX.[object_id]=IDXC.[object_id]
and IDX.index_id=IDXC.index_id
left join sys.key_constraints KC
on IDX.[object_id]=KC.[parent_object_id]
and IDX.index_id=KC.unique_index_id
inner join sys.objects O
on O.[object_id]=IDX.[object_id]
inner join sys.columns C
on O.[object_id]=C.[object_id]
and O.type='U'
and O.is_ms_shipped=0
and IDXC.Column_id=C.Column_id
left join sys.types T on C.system_type_id=T.system_type_id
where IDX.is_primary_key=1 and IDX.type_desc='CLUSTERED'
and T.name='uniqueidentifier'
posted @ 2011-11-23 18:06  Bodil  阅读(278)  评论(0编辑  收藏  举报