Como faço para determinar se uma coluna é uma coluna de identidade em MSSQL 2000?
-
06-07-2019 - |
Pergunta
Eu quero fazer isso no código, não com ALT + F1.
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:
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