Come determinare se una colonna è una colonna di identità in MSSQL 2000?
-
06-07-2019 - |
Domanda
Voglio farlo nel codice, non con ALT + F1.
Soluzione
Puoi anche farlo in questo modo:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
Restituisce 1 se si tratta di un'identità, 0 in caso contrario.
Altri suggerimenti
sp_help tablename
Nell'output cercare qualcosa del genere:
Identity Seed Increment Not For Replication
----------- ------- ------------ ----------------------
userid 15500 1 0
Modifica la clausola WHERE
per adattarla:
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
Come espansione sulla risposta di @ Blogbeard
Se ti piacciono le query pure e le funzioni non integrate
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à è il valore utilizzato per la prima riga caricata nella tabella.
Esiste un articolo di Microsoft che può fornire una buona conoscenza di Identity:
Ora, ci sono un paio di modi per identificare quale colonna è una colonna identità in una tabella:
- Possiamo usare la query sql: selezionare columnproperty (object_id ('mytable'), 'mycolumn', 'IsIdentity')
- sp_help tablename
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow