sp_primarykeys (Transact-SQL)

適用対象:SQL Server

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

Transact-SQL 構文表記規則

構文

  
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 環境では、これはテーブルの所有者に対応します。

[ @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_Standard Edition Q int 複数列の主キーにおける列のシーケンス番号。
PK_NAME sysname 主キーの識別子。 データ ソースに適用されない場合は NULL を返します。

解説

sp_primarykeysは、table_serverに対応する OLE DB プロバイダーの IDBSchemaRowset インターフェイスのPRIMARY_KEYS行セットに対してクエリを実行することによって実行されますtable_nametable_schematable_catalog、列の各パラメーターがこのインターフェイスに渡され、返される行が制限されます。

指定したリンク サーバーの OLE DB プロバイダーが IDBSchemaRowset インターフェイスのPRIMARY_KEYS行セットをサポートしていない場合、sp_primarykeysは空の結果セットを返します。

アクセス許可

スキーマに対する SELECT アクセス許可が必要です。

次の例では、データベース内AdventureWorks2022のテーブルのLONDON1主キー列をHumanResources.JobCandidateサーバーから返します。

EXEC sp_primarykeys @table_server = N'LONDON1',   
   @table_name = N'JobCandidate',  
   @table_catalog = N'AdventureWorks2022',   
   @table_schema = N'HumanResources';  

参照

分散クエリ ストアド プロシージャ (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)