次の方法で共有


sp_primarykeys (Transact-SQL)

適用対象: SQL Server

指定されたリモート テーブルの主キー列を、キー列ごとに 1 行ずつ返します。

Transact-SQL 構文表記規則

構文

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_serversysname で、既定値はありません。

[ @table_name = ] N'table_name'

主キー情報を提供するテーブルの名前。 @table_namesysname で、既定値は NULL です。

[ @table_schema = ] N'table_schema'

テーブル スキーマ。 @table_schemasysname で、既定値は NULL です。 SQL Server 環境では、この値はテーブル所有者に対応します。

[ @table_catalog = ] N'table_catalog'

指定した @table_name が存在するカタログの名前。 @table_catalogsysname で、既定値は 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';