2010-06-08 389 views
2

我有一个SQL Server数据库,其中有一个具有标识规范的列。使用SQL查找标识规范

但是,如果我做一个SQL查询,如:

SELECT * FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 

它不会告诉我,如果列是标识规范 - 有一个查询,会吗?

+1

这个问题可能是,什么投入你的where子句http://stackoverflow.com/questions/87747/how-有帮助do-you-determine-what-sql-tables-have-an-identity-column-programatically – krock 2010-06-08 09:37:04

回答

1

使用SYS.COLUMNS系统目录视图:

select o.name, c.name, c.is_identity 
from sys.objects o 
inner join sys.columns c on o.object_id = c.object_id 
where o.type='U' 
--and o.name='MyTable' 
and c.is_identity = 1 
1

不可能位于ANSI定义的INFORMATION_SCHEMA视图中,因为identity是SQL Server特有的功能。您可以使用SQL Server特定的表或视图(取决于您的SQL Server版本),如syscolumns/sys.columns

+0

当然,但是当表名不包含在sys.columns中时,如何查询特定表的sys.columns? 非常感谢, Joel – 2010-06-08 09:37:19