sp_primarykeys (Transact-SQL)
適用対象: SQL Server
指定されたリモート テーブルの主キー列を、キー列ごとに 1 行ずつ返します。
構文
sp_primarykeys
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ ; ]
引数
[ @table_server = ] N'table_server'
主キー情報を返すリンク サーバーの名前。 @table_server は sysname で、既定値はありません。
[ @table_name = ] N'table_name'
主キー情報を提供するテーブルの名前。 @table_name は sysname で、既定値は NULL
です。
[ @table_schema = ] N'table_schema'
テーブル スキーマ。 @table_schema は sysname で、既定値は NULL
です。 SQL Server 環境では、この値はテーブル所有者に対応します。
[ @table_catalog = ] N'table_catalog'
指定した @table_name が存在するカタログの名前。 @table_catalog は sysname で、既定値は NULL
です。 SQL Server 環境では、この値はデータベース名に対応します。
リターン コードの値
なし。
結果セット
列名 | データ型 | 説明 |
---|---|---|
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
行セットに対してクエリを実行することによって実行されます。 パラメーターは、返される行を制限するために、このインターフェイスに渡されます。
sp_primarykeys
指定したリンク サーバーの OLE DB プロバイダーが、IDBSchemaRowset
インターフェイスのPRIMARY_KEYS
行セットをサポートしていない場合は、空の結果セットが返されます。
アクセス許可
スキーマに対する SELECT
アクセス許可が必要です。
例
次の例では、AdventureWorks2022
データベースのHumanResources.JobCandidate
テーブルのLONDON1
サーバーから主キー列を返します。
EXEC sp_primarykeys @table_server = N'LONDON1',
@table_name = N'JobCandidate',
@table_catalog = N'AdventureWorks2022',
@table_schema = N'HumanResources';