我想要做到这一点在代码,不与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'

身份是值用于第一行载入该表。

有一个微软篇文章,其中可以提供良好的知识有关身份:

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property?view=sql-server-2017

现在,有几种方法可用于识别哪一列是一个身份中的列表所示:

  • 我们可以使用sql query:选择 columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
  • sp_help tablename
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top