This worked for SQL Server 2005, 2008, and 2012. I found that sys.identity_columns does not contain all of my tables with identity columns.
SELECT a.name AS TableName, b.name AS IdentityColumn FROM sys.sysobjects a JOIN sys.syscolumns b ON a.id = b.id WHERE is_identity = 1 ORDER BY name;
When looking at the documentation page, you can also use the status column. In addition, you can add an identifier of four parts, and it will work on different servers.
SELECT a.name AS TableName, b.name AS IdentityColumn FROM [YOUR_SERVER_NAME].[YOUR_DB_NAME].sys.sysobjects a JOIN [YOUR_SERVER_NAME].[YOUR_DB_NAME].sys.syscolumns b ON a.id = b.id WHERE is_identity = 1 ORDER BY name;
Source: https://msdn.microsoft.com/en-us/library/ms186816.aspx
Nikolai Bielik Oct 18 '16 at 19:00 2016-10-18 19:00
source share