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

标签 sql-server sql-server-2014

我需要编写一个查询,该查询将返回具有数据类型 uniqueidentifier 的主键列的所有表名称。

任何人都可以帮助我吗?

最佳答案

使用 SQL Server object catalog views :

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'

rextester链接:http://rextester.com/SAL18997

关于sql-server - 获取 SQL Server 中所有具有数据类型 uniqueidentifier 的主键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957690/

相关文章:

sql - 用上一行更新当前行 sql server

exception - Visual Studio 2013 错误消息 : 0x80004001 (E_NOTIMPL)

ado.net - SQL Server 2014 Native Client (12.0.0.0) - 有什么方法可以强制使用程序集版本(例如 SqlConnectionString "Type System Version")?

sql-server - SQL Server - 更新全文目录索引的脚本

.net - SQL Server 2008 - HashBytes 计算列

java - 如何在HyperSQL中支持SqlServer的 ".."?

sql-server - 如果值包含这些字母,那么

sql - 如何在 SQL Server 2008 R2 中根据参数名称检索 xml 数据类型中的属性值?

java - 如何使用java中的程序在JTextArea中输入数据

sql-server - 如何将大量数据从一个表复制到同一数据库中的另一个表?