我有一个SQL Server数据库,其中有一个具有标识规范的列。使用SQL查找标识规范
但是,如果我做一个SQL查询,如:
SELECT * FROM INFORMATION_SCHEMA.Columns where TABLE_NAME =
它不会告诉我,如果列是标识规范 - 有一个查询,会吗?
我有一个SQL Server数据库,其中有一个具有标识规范的列。使用SQL查找标识规范
但是,如果我做一个SQL查询,如:
SELECT * FROM INFORMATION_SCHEMA.Columns where TABLE_NAME =
它不会告诉我,如果列是标识规范 - 有一个查询,会吗?
使用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
不可能位于ANSI定义的INFORMATION_SCHEMA视图中,因为identity
是SQL Server特有的功能。您可以使用SQL Server特定的表或视图(取决于您的SQL Server版本),如syscolumns
/sys.columns
。
当然,但是当表名不包含在sys.columns中时,如何查询特定表的sys.columns? 非常感谢, Joel – 2010-06-08 09:37:19
select * from sys.identity_columns
这个问题可能是,什么投入你的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