¿Cómo determino si una columna es una columna de identidad en MSSQL 2000?
-
06-07-2019 - |
Pregunta
Quiero hacer esto en código, no con ALT + F1.
Solución
También puedes hacerlo de esta manera:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
Devuelve 1 si es una identidad, 0 si no.
Otros consejos
sp_help tablename
En la salida, busque algo como esto:
Identity Seed Increment Not For Replication
----------- ------- ------------ ----------------------
userid 15500 1 0
Ajuste la cláusula WHERE
para adaptarla:
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 expansión en la respuesta de @ Blogbeard
Si te gustan las consultas puras y no las funciones incorporadas
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'
Identidad es el valor que se usa para la primera fila cargada en la tabla.
Hay un artículo de Microsoft que puede proporcionar un buen conocimiento sobre Identidad:
Ahora, hay dos formas de identificar qué columna es una columna de identidad en una tabla:
- Podemos usar la consulta SQL: seleccione columnproperty (object_id ('mytable'), 'mycolumn', 'IsIdentity')
- sp_help tablename
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow