Как определить, является ли столбец столбцом идентификаторов в MSSQL 2000? - PullRequest
26 голосов
/ 10 октября 2008

Я хочу сделать это в коде, а не с ALT + F1.

Ответы [ 5 ]

63 голосов
/ 10 октября 2008

Вы также можете сделать это следующим образом:

select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')

Возвращает 1, если это тождество, 0, если нет.

18 голосов
/ 10 октября 2008
sp_help tablename 

В выводе ищите что-то вроде этого:

 Identity     Seed     Increment     Not For Replication    
 -----------  -------  ------------  ---------------------- 
 userid       15500    1             0        
4 голосов
/ 10 октября 2008

Настройте предложение 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
0 голосов
/ 03 ноября 2018

Удостоверение - это значение, которое используется для самой первой строки, загруженной в таблицу.

Существует статья в Microsoft, которая может предоставить хорошие знания об идентичности:

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

Теперь есть несколько способов определить, какой столбец является столбцом идентификаторов в таблице:

  • Мы можем использовать SQL-запрос: выберите columnproperty (object_id ('mytable'), 'mycolumn', 'IsIdentity')
  • sp_help имя таблицы
0 голосов
/ 26 июля 2016

Как дополнение к ответу @ 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...