sp_primarykeys (Transact-SQL)
指定されたリモート テーブルの主キー列を、キー列ごとに 1 行ずつ返します。
構文
sp_primarykeys [ @table_server = ] 'table_server'
[ , [ @table_name = ] 'table_name' ]
[ , [ @table_schema = ] 'table_schema' ]
[ , [ @table_catalog = ] 'table_catalog' ]
引数
[ @table_server = ] **'**table_server'
主キーの情報を返すリンク サーバーの名前を指定します。table_server のデータ型は sysname で、既定値はありません。[ @table_name = ] 'table_name'
主キー情報を提供するテーブルの名前を指定します。table_name のデータ型は sysname で、既定値は NULL です。[ @table_schema = ] 'table_schema'
テーブル スキーマです。table_schema のデータ型は sysname で、既定値は NULL です。SQL Server 2008 環境では、これはテーブル所有者に相当します。[ @table_catalog = ] 'table_catalog'
指定した table_name が存在するカタログの名前を指定します。SQL Server 環境では、これはデータベース名に相当します。table_catalog のデータ型は sysname で、既定値は NULL です。
リターン コードの値
なし
結果セット
列名 |
データ型 |
説明 |
---|---|---|
TABLE_CAT |
sysname |
テーブル カタログ。 |
TABLE_SCHEM |
sysname |
テーブル スキーマ。 |
TABLE_NAME |
sysname |
テーブルの名前。 |
COLUMN_NAME |
sysname |
列の名前。 |
KEY_SEQ |
int |
複数列の主キーにおける、列のシーケンス番号。 |
PK_NAME |
sysname |
主キー識別子。データ ソースに適用されない場合は NULL が返されます。 |
説明
sp_primarykeys は、table_server に対応する OLE DB プロバイダーの IDBSchemaRowset インターフェイスの PRIMARY_KEYS 行セットをクエリすることにより実行されます。table_name、table_schema、table_catalog、および column の各パラメーターは、返される行を制限するために、このインターフェイスに渡されます。
指定されたリンク サーバーの OLE DB プロバイダーで IDBSchemaRowset インターフェイスの PRIMARY_KEYS 行セットがサポートされない場合、sp_primarykeys では空の結果セットが返されます。
権限
スキーマに対する SELECT 権限が必要です。
例
次の例では、AdventureWorks2008R2 データベースの HumanResources.JobCandidate テーブルの主キー列を、LONDON1 サーバーから返します。
EXEC sp_primarykeys @table_server = N'LONDON1',
@table_name = N'JobCandidate',
@table_catalog = N'AdventureWorks2008R2',
@table_schema = N'HumanResources';