2010-06-08 391 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