sp_primarykeys (Transact-SQL)

指定されたリモート テーブルの主キー列を、キー列ごとに 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 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 権限が必要です。

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

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