2009-07-10 7 views
0

Ich habe festgestellt, dass, wie zu bestimmen, welche Spalten Primärschlüsselspalte einer gegebenen Tabelle sind durch diese Abfrage mit:Identifizierungs-Spalte identifizieren?

SELECT CONSTRAINT_NAME, COLUMN_NAME 
FROM 
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 
WHERE TABLE_NAME='tablename_here' AND 
CONSTRAINT_NAME LIKE 'PK_%' 

finde ich, was die Identität Saatgut und Schritt unter Verwendung dieser Abfrage ist:

SELECT IDENT_SEED('tablename_here'), IDENT_INCR('tablename_here') 

Ich kann die Constraint-Informationen nicht verwenden, da eine Primärschlüssel-Constraint über mehrere Spalten hinweg sein kann. Und ich kann anscheinend keine Transact SQL Funktion finden, um meine Identitätsinformation zu geben.

Kann mir jemand helfen zu verstehen, wie man die Identitätsinformationen findet?

Ich bin mit SQL Server 2000

Antwort

9

Um die Identity-Spalte in einer Tabelle finden Sie diese verwenden können:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='tablename_here' 
AND COLUMNPROPERTY(OBJECT_ID('tablename_here'),COLUMN_NAME,'IsIdentity') = 1 
1

Sie die COLUMNPROPERTY Funktion können Sie überprüfen, ob eine Spalte, die Identität verwendet Eigentum.

1
SELECT sys.tables.name, sys.columns.name 
FROM sys.tables 
INNER JOIN sys.columns 
ON sys.tables.object_id = sys.columns.object_id 
WHERE is_identity = 1 
AND sys.tables.name = 'MyTable' 
+1

Allans mit SQL Server 2000 würde so nicht funktionieren – AdaTheDev