如何确定列是否是MSSQL 2000中的标识列?
答
你也可以这样来做:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
返回1如果它是一个ident如果不是,则为0。
答
sp_help tablename
在输出看这样的事情:
Identity Seed Increment Not For Replication
----------- ------- ------------ ----------------------
userid 15500 1 0
答
调整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
答
上@扩张Blogbeard的回答
如果你喜欢纯粹的查询,并没有内置功能
select col_name(sys.all_objects.object_id, column_id) as id from sys.identity_columns
join sys.all_objects on sys.identity_columns.object_id = sys.all_objects.object_id
where sys.all_objects.name = 'system_files'
参见[如何识别表是否具有标识列(http://stackoverflow.com/q/2871701)和[如何确定哪些SQL表以编程方式具有标识列](http://stackoverflow.com/q/87747) – 2016-06-10 08:49:27