如何确定列是否是MSSQL 2000中的标识列?

Bia*_*cki 28 t-sql sql-server metadata

我想在代码中执行此操作,而不是使用ALT + F1.

Blo*_*ard 65

你也可以这样做:

select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
Run Code Online (Sandbox Code Playgroud)

如果是标识则返回1,否则返回0.


Pat*_*ney 19

sp_help tablename 
Run Code Online (Sandbox Code Playgroud)

在输出中查找类似这样的内容:

 Identity     Seed     Increment     Not For Replication    
 -----------  -------  ------------  ---------------------- 
 userid       15500    1             0        
Run Code Online (Sandbox Code Playgroud)


Luk*_*ett 7

调整WHERE条款以适应:

select
    a.name as TableName,
    b.name as IdentityColumn
from
    sysobjects a inner join syscolumns b on a.id = b.id
where
    columnproperty(a.id, b.name, 'isIdentity') = 1
    and objectproperty(a.id, 'isTable') = 1
Run Code Online (Sandbox Code Playgroud)