我怎么确定如果一列被一个身份列在MSSQL2000?
-
06-07-2019 - |
题
我想要做到这一点在代码,不与ALT F1。
解决方案
你也可以这样做:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
如果是身份则返回1,否则返回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
扩展@Bobbeard的答案
如果您喜欢纯查询而不是内置函数
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'
身份是值用于第一行载入该表。
有一个微软篇文章,其中可以提供良好的知识有关身份:
现在,有几种方法可用于识别哪一列是一个身份中的列表所示:
- 我们可以使用sql query:选择 columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
- sp_help tablename
不隶属于 StackOverflow