Frage

Ich möchte dies in Code zu tun, nicht mit ALT + F1.

War es hilfreich?

Lösung

Sie können es auch tun, auf diese Weise:

select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')

Gibt 1 zurück, wenn es sich um eine Identität ist, 0, wenn nicht.

Andere Tipps

sp_help tablename 

In der Ausgabe suchen etwas wie folgt aus:

 Identity     Seed     Increment     Not For Replication    
 -----------  -------  ------------  ---------------------- 
 userid       15500    1             0        

Stellen Sie die WHERE Klausel anpassen:

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

Als Erweiterung auf @ Blogbeard Antwort

Wenn Sie reine Abfrage und nicht eingebaute Funktionen

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'

Die Identität ist der Wert, der für die erste Zeile verwendet wird, in die Tabelle geladen.

Es ist ein Microsoft-Artikel, die guten Kenntnisse über Identität bieten kann:

  

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

Nun gibt es mehr Möglichkeiten für die Identifizierung, welche Spalte eine Identitätsspalte in einer Tabelle:

  • Wir können SQL-Abfrage verwenden: select COLUMN (object_id ( 'mytable'), 'mycolumn', 'IsIdentity')
  • Sp_help tablename
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top