Domanda

Voglio farlo nel codice, non con ALT + F1.

È stato utile?

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:

  

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

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