0

このクエリを使用して、特定のテーブルの主キー列である列を特定する方法を発見しました。

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

次のクエリを使用して、ID シードとインクリメントを見つけることができます。

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

主キー制約は複数の列にまたがる可能性があるため、制約情報を使用できません。そして、ID情報を提供するTransact SQL関数が見つからないようです。

ID情報を見つける方法を理解するのを手伝ってくれる人はいますか?

SQL Server 2000 を使用しています。

4

3 に答える 3

9

特定のテーブルで IDENTITY 列を見つけるには、これを使用できます。

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='tablename_here' 
AND COLUMNPROPERTY(OBJECT_ID('tablename_here'),COLUMN_NAME,'IsIdentity') = 1
于 2009-07-10T12:54:02.597 に答える
1

COLUMNPROPERTY関数を使用して、列がIDプロパティを使用しているかどうかを確認できます。

于 2009-07-10T12:59:13.283 に答える
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'
于 2009-07-10T13:00:10.867 に答える