Como faço para determinar se uma coluna é uma coluna de identidade em MSSQL 2000?

StackOverflow https://stackoverflow.com/questions/188967

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu quero fazer isso no código, não com ALT + F1.

Foi útil?

Solução

Você também pode fazê-lo desta maneira:

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

Retorna 1 se é uma identidade, 0 se não.

Outras dicas

sp_help tablename 

No olhar saída para algo como isto:

 Identity     Seed     Increment     Not For Replication    
 -----------  -------  ------------  ---------------------- 
 userid       15500    1             0        

Ajustar a cláusula WHERE 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

Como a expansão na resposta da @ Blogbeard

Se você gosta de consulta pura e não funções embutidas

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'

A identidade é o valor que é usado para a primeira linha carregada na tabela.

Há um artigo da Microsoft que pode fornecer um bom conhecimento sobre identidade:

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

Agora, há duas maneiras para identificar qual coluna é uma coluna de identidade em uma tabela:

  • Podemos usar consulta SQL: SELECT COLUMNPROPERTY (object_id ( 'mytable'), 'mycolumn', 'IsIdentity')
  • sp_help tablename
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top