Sql server 获取SQL Server中具有数据类型为uniqueidentifier的主键的所有表
我需要编写一个查询,返回所有表名,其中主键列的数据类型为uniqueidentifier 任何人都可以帮助我。使用sql server:Sql server 获取SQL Server中具有数据类型为uniqueidentifier的主键的所有表,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我需要编写一个查询,返回所有表名,其中主键列的数据类型为uniqueidentifier 任何人都可以帮助我。使用sql server: rextester链接:太好了。谢谢!!将在2分钟后接受您的答复:D select IndexName = i.name , SchemaName = schema_Name(t.schema_id) , TableName = t.Name , ColumnName = c.Name , TypeName = t
rextester链接:太好了。谢谢!!将在2分钟后接受您的答复:D
select
IndexName = i.name
, SchemaName = schema_Name(t.schema_id)
, TableName = t.Name
, ColumnName = c.Name
, TypeName = type_name(c.user_type_id)
from sys.tables t
inner join sys.indexes as i on
t.object_id = i.object_id
and i.is_primary_key = 1
inner join sys.index_columns as ic on
i.object_id = ic.object_id
and i.index_id = ic.index_id
inner join sys.columns as c on
c.column_id = ic.column_id
and c.object_id = ic.object_id
and type_name(c.user_type_id) = 'uniqueidentifier'
SELECT Col.Column_Name , tab.TABLE_NAME ,DATA_TYPE
from
INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab join
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col on col.CONSTRAINT_NAME = Tab.CONSTRAINT_NAME
join INFORMATION_SCHEMA.COLUMNS columns on columns.COLUMN_NAME = Col.COLUMN_NAME and col.TABLE_NAME =columns.TABLE_NAME
WHERE
Col.Constraint_Name = Tab.Constraint_Name
AND Col.Table_Name = Tab.Table_Name
AND Constraint_Type = 'PRIMARY KEY'
AND columns.DATA_TYPE = 'uniqueidentifier'