我发现如何使用此查询确定哪些列是给定表的主键列:
SELECT CONSTRAINT_NAME, COLUMN_NAME
FROM
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE TABLE_NAME='tablename_here' AND
CONSTRAINT_NAME LIKE 'PK_%'
我可以通过使用此查询找到身份种子和增量:
SELECT IDENT_SEED('tablename_here'), IDENT_INCR('tablename_here')
我无法使用约束信息,因为主键约束可以跨多个列。我似乎无法找到任何Transact SQL函数来提供我的身份信息。
有人可以帮我理解如何查找身份信息吗?
我正在使用SQL Server 2000。
答案 0 :(得分:9)
要查找给定表中的IDENTITY列,您可以使用:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='tablename_here'
AND COLUMNPROPERTY(OBJECT_ID('tablename_here'),COLUMN_NAME,'IsIdentity') = 1
答案 1 :(得分:1)
您可以使用COLUMNPROPERTY函数检查列是否使用标识属性。
答案 2 :(得分:1)
SELECT sys.tables.name, sys.columns.name
FROM sys.tables
INNER JOIN sys.columns
ON sys.tables.object_id = sys.columns.object_id
WHERE is_identity = 1
AND sys.tables.name = 'MyTable'