我的问题很简单,如何列出 SQL Server 用户定义表类型的主键(列名)?
例如;
CREATE TYPE [dbo].[MyTableType] AS TABLE
(
[ID] int NOT NULL, PRIMARY KEY CLUSTERED ( [ID])
)
如何通过查询获取列[ID]
好像只能找到真正的表的主键,不能找到表类型。
最佳答案
这存储在目录 View 中:
SELECT c.Name
FROM sys.table_types AS tt
INNER JOIN sys.key_constraints AS kc
ON kc.parent_object_id = tt.type_table_object_id
INNER JOIN sys.indexes AS i
ON i.object_id = kc.parent_object_id
AND i.index_id = kc.unique_index_id
INNER JOIN sys.index_columns AS ic
ON ic.object_id = kc.parent_object_id
INNER JOIN sys.columns AS c
ON c.object_id = ic.object_id
AND c.column_id = ic.column_id
WHERE tt.Name = 'YourTypeName';
关于sql-server - 如何列出 SQL Server 用户定义表类型的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36843216/