0

我发现如何使用此查询确定哪些列是给定表的主键列:

 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。

4

3 回答 3

9

要在给定表中查找 IDENTITY 列,您可以使用以下命令:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='tablename_here' 
AND COLUMNPROPERTY(OBJECT_ID('tablename_here'),COLUMN_NAME,'IsIdentity') = 1
于 2009-07-10T12:54:02.597 回答
1

您可以使用COLUMNPROPERTY函数来检查列是否使用标识属性。

于 2009-07-10T12:59:13.283 回答
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'
于 2009-07-10T13:00:10.867 回答