sp_foreignkeys (Transact-SQL)
適用対象:SQL Server
リンク サーバーのテーブルの主キーを参照する外部キーを返します。
構文
sp_foreignkeys [ @table_server = ] 'table_server'
[ , [ @pktab_name = ] 'pktab_name' ]
[ , [ @pktab_schema = ] 'pktab_schema' ]
[ , [ @pktab_catalog = ] 'pktab_catalog' ]
[ , [ @fktab_name = ] 'fktab_name' ]
[ , [ @fktab_schema = ] 'fktab_schema' ]
[ , [ @fktab_catalog = ] 'fktab_catalog' ]
引数
[ @table_server = ] 'table_server'
テーブル情報を返すリンク サーバーの名前です。 table_server は sysname で、既定値はありません。
[ @pktab_name = ] 'pktab_name'
主キーを持つテーブルの名前です。 pktab_name は sysname で、既定値は NULL です。
[ @pktab_schema = ] 'pktab_schema'
主キーを持つスキーマの名前です。 pktab_schemaは sysname で、既定値は NULL です。 SQL Serverでは、これには所有者名が含まれます。
[ @pktab_catalog = ] 'pktab_catalog'
主キーを持つカタログの名前です。 pktab_catalogは sysname で、既定値は NULL です。 SQL Serverでは、これにはデータベース名が含まれます。
[ @fktab_name = ] 'fktab_name'
外部キーを持つテーブルの名前です。 fktab_nameは sysname で、既定値は NULL です。
[ @fktab_schema = ] 'fktab_schema'
外部キーを持つスキーマの名前です。 fktab_schemaは sysname で、既定値は NULL です。
[ @fktab_catalog = ] 'fktab_catalog'
外部キーを持つカタログの名前です。 fktab_catalogは sysname で、既定値は NULL です。
リターン コードの値
なし
結果セット
さまざまな DBMS 製品では、テーブル (カタログ) の 3 部構成の名前付けをサポートしています。スキーマ。table)、これは結果セットで表されます。
列名 | データ型 | 説明 |
---|---|---|
PKTABLE_CAT | sysname | 主キーが設定されたテーブルのカタログです。 |
PKTABLE_SCHEM | sysname | 主キーが設定されたテーブルのスキーマです。 |
PKTABLE_NAME | sysname | テーブルの名前 (主キーを使用)。 このフィールドは常に値を返します。 |
PKCOLUMN_NAME | sysname | 返される TABLE_NAME の各列の主キー列または列の名前。 このフィールドは常に値を返します。 |
FKTABLE_CAT | sysname | 外部キーが設定されたテーブルのカタログです。 |
FKTABLE_SCHEM | sysname | 外部キーが設定されたテーブルのスキーマです。 |
FKTABLE_NAME | sysname | 外部キーが設定されたテーブルの名前です。 このフィールドは常に値を返します。 |
FKCOLUMN_NAME | sysname | 返されるTABLE_NAMEの各列の外部キー列の名前。 このフィールドは常に値を返します。 |
KEY_SEQ | smallint | 複数列の主キー内の列のシーケンス番号。 このフィールドは常に値を返します。 |
UPDATE_RULE | smallint | SQL 操作が更新された場合に外部キーに適用されるアクション。 SQL Serverは、次の列の 0、1、または 2 を返します。 0=CASCADE が外部キーに変更されます。 1=NO ACTION は、外部キーが存在する場合に変更されます。 2=SET_NULL: 外部キーを NULL に設定します。 |
DELETE_RULE | smallint | SQL 操作が削除された場合に外部キーに適用されるアクション。 SQL Serverは、次の列の 0、1、または 2 を返します。 0=CASCADE が外部キーに変更されます。 1=NO ACTION は、外部キーが存在する場合に変更されます。 2=SET_NULL: 外部キーを NULL に設定します。 |
FK_NAME | sysname | 外部キー識別子。 データ ソースに適用されない場合は NULL になります。 SQL Serverは FOREIGN KEY 制約名を返します。 |
PK_NAME | sysname | 主キー識別子。 データ ソースに適用されない場合は NULL になります。 SQL Serverは PRIMARY KEY 制約名を返します。 |
DEFERRABILITY | smallint | 制約チェックが遅延可能かどうかを示します。 |
結果セットでは、FK_NAME列とPK_NAME列は常に NULL を返します。
解説
sp_foreignkeys は、table_serverに対応する OLE DB プロバイダーの IDBSchemaRowset インターフェイスのFOREIGN_KEYS行セットに対してクエリを 実行します。 table_name、table_schema、table_catalog、列の各パラメーターをこのインターフェイスに渡して、返される行を制限します。
アクセス許可
スキーマに対する SELECT アクセス許可が必要です。
例
次の例では、Seattle1
リンク サーバー上のデータベース内のDepartment
テーブルにAdventureWorks2022
関する外部キー情報 を返します。
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';
参照
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示