sp_primarykeys (Transact-SQL)
適用対象: 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_nameis 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_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 アクセス許可が必要です。
例
次の例では、AdventureWorks2022
データベースのHumanResources.JobCandidate
テーブルのLONDON1
サーバーから主キー列を返します。
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)