Question

Je veux le faire dans le code, pas avec ALT + F1.

Était-ce utile?

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é:

  

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

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
scroll top