Sql server 获取SQL Server中具有数据类型为uniqueidentifier的主键的所有表

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

我需要编写一个查询,返回所有表名,其中主键列的数据类型为uniqueidentifier

任何人都可以帮助我。

使用sql server:


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'