Comment déterminer si une colonne est une colonne d'identité dans MSSQL 2000?
-
06-07-2019 - |
Question
Je veux le faire dans le code, pas avec ALT + F1.
La solution
Vous pouvez également le faire de cette façon:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
Retourne 1 s'il s'agit d'une identité, 0 sinon.
Autres conseils
sp_help tablename
Dans la sortie, recherchez quelque chose comme ceci:
Identity Seed Increment Not For Replication
----------- ------- ------------ ----------------------
userid 15500 1 0
Adaptez la clause 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
Comme extension sur la réponse de @ Blogbeard
Si vous aimez les requêtes pures et non les fonctions intégrées
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'
Identité est la valeur utilisée pour la toute première ligne chargée dans la table.
Il existe un article de Microsoft pouvant fournir de bonnes connaissances sur l'identité:
Maintenant, il existe deux manières d'identifier la colonne qui est une colonne d'identité dans une table:
- Nous pouvons utiliser une requête SQL: select columnproperty (object_id ('mytable'), 'mycolumn', 'IsIdentity')
- sp_help nom_table
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow