2 Stimmen

Abfrage von SQL Server-/Oracle-Datenbanktabellendaten - Identitätsspalte

Ich versuche, eine SQL Server- und Oracle-Datenbank abzufragen, um Tabellendaten zu erhalten, die angeben, ob eine Spalte automatisch inkrementiert wird oder nicht. Ich würde annehmen, dass man in den Tabellen "information_schema.columns" und "user_tab_cols" nachsehen würde, aber diese Informationen scheinen dort nicht enthalten zu sein. Weiß jemand, wo ich diese Informationen abrufen kann?

2voto

Joe Stefanelli Punkte 128819

Um eine bestimmte Spalte in SQL Server zu überprüfen:

select t.name as tableName, c.name as columnName, c.is_identity 
    from sys.columns c
        inner join sys.tables t
            on c.object_id = t.object_id
    where t.name = 'YourTable'
        and c.name = 'YourColumn'

oder um alle Identitätsspalten zu finden

select t.name as tableName, c.name as columnName, c.is_identity 
    from sys.columns c
        inner join sys.tables t
            on c.object_id = t.object_id
    where c.is_identity = 1

1voto

SQLMenace Punkte 128184

Ein Weg in Sql-Server, wird dies alle Spalten, die Identität haben zurückgeben

    select OBJECT_NAME(id) as Tablename, name as ColumnName,*
    from syscolumns
   where COLUMNPROPERTY(id, name, 'IsIdentity') = 1

Oder durch Verwendung von information_schema

select TABLE_SCHEMA + '.' + TABLE_NAME,COLUMN_NAME
 from INFORMATION_SCHEMA.columns
where COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), 
   COLUMN_NAME, 'IsIdentity') = 1

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X