Reputation: 31041
I want to do this in code, not with ALT+F1.
Upvotes: 48
Views: 41345
Reputation: 1213
In Sql Server 2016 you can check if a field is identity by querying against the sys.all_columns table:
SELECT * from sys.all_columns where object_id = OBJECT_ID('TableName') AND [Name] = 'ColumnName' AND is_identity = 1
Upvotes: 0
Reputation: 834
Identity is the value that is used for the very first row loaded into the table.
There is a microsoft article which can provide good knowledge about Identity:
Now, there are couple of ways for identifying which column is an identity column in a table:
Upvotes: 1
Reputation: 28712
As expansion on @Blogbeard's answer
If you like pure query and not inbuilt functions
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'
Upvotes: 1
Reputation: 103437
You can also do it this way:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
Returns 1 if it's an identity, 0 if not.
Upvotes: 95
Reputation: 32896
Adjust the WHERE
clause to suit:
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
Upvotes: 7
Reputation: 59271
sp_help tablename
In the output look for something like this:
Identity Seed Increment Not For Replication
----------- ------- ------------ ----------------------
userid 15500 1 0
Upvotes: 26