|
この関数は、現在のデータベース内の特定テーブルの外部キー情報を返します。dbo.fSQLForeignKeys は、外部キーの一覧を次のいずれかの結果セットとして返すことができます。
dbo.fSQLForeignKeys (<'table_qualifier' | null>, 'pkey_table_name' | null>, <'fkey_table_name' | null>)
パラメーター
|
データ型
|
デフォルト値
|
説明
|
---|---|---|---|
table_qualifier
|
VARCHAR
|
現在のデータベース
|
詳細を取得するデータベースの名前。
|
pkey_table_name
|
VARCHAR
|
(デフォルト値なし)
|
主キー列に外部キーが関連付けられているテーブルの名前。パターン検索がサポートされます(文字列検索パターンを参照してください)。
|
fkey_table_name
|
VARCHAR
|
(デフォルト値なし)
|
外部キー情報を取得する必要のあるテーブルの名前。パターン検索がサポートされます(文字列検索パターンを参照してください)。
|
列名
|
データ型
|
説明
|
---|---|---|
PKTABLE_QUALIFIER
|
VARCHAR
|
主キー テーブルのデータベース名。データベースに適用されない場合は NULL。
|
PKTABLE_OWNER
|
VARCHAR
|
主キー テーブルのオーナーの名前。データベースに適用されない場合は NULL。
|
PKTABLE_NAME
|
NULL でない VARCHAR
|
主キー テーブルの名前
|
PKCOLUMN_NAME
|
NULL でない VARCHAR
|
主キー列の列名名前のない列については、空文字列が返されます。
|
FKTABLE_QUALIFIER
|
VARCHAR
|
外部キー テーブルのデータベース名。データベースに適用されない場合は NULL。
|
FKTABLE_OWNER
|
VARCHAR
|
外部キー テーブルのオーナーの名前。データベースに適用されない場合は NULL。
|
FKTABLE_NAME
|
NULL でない VARCHAR
|
外部キー テーブルの名前。
|
FKCOLUMN_NAME
|
NULL でない VARCHAR
|
外部キー列の列名名前のない列については、空文字列が返されます。
|
KEY_SEQ
|
SMALLINT
|
キーにおける列のシーケンス番号(1 から始まります)。この列の値は、X$Index の Xi$Part に対応します。X$Indexを参照してください。
|
UPDATE_RULE
|
SMALLINT
|
SQL 操作が UPDATE であるとき、外部キーに適用される動作。次のいずれかの値になります。
|
DELETE_RULE
|
SMALLINT
|
SQL 操作が DELETE であるとき、外部キーに適用される動作。次のいずれかの値になります。
|
FK_NAME
|
VARCHAR
|
外部キーの名前。データベースに適用されない場合は NULL。
|
PK_NAME
|
VARCHAR
|
主キーの名前。データベースに適用されない場合は NULL。
|
DEFERRABILITY
|
SMALLINT
|
次のいずれかの値です。
|
次の例では、DEMODATA サンプル データベースに 3 つのテーブルを作成します。それらのテーブルに外部キーと主キーが割り当てられます。dbo.fSQLForeignKeys 関数は、文字列検索パターンを使って 2 つの主キー テーブルを参照します。文字列検索パターンも参照してください。
CREATE TABLE primarykey1 (pk1col1 INT, pk1col2 INT, pk1col3 INT, pk1col4 INT, PRIMARY KEY (pk1col1, pk1col2)) ALTER TABLE primarykey1 ADD FOREIGN KEY (pk1col3, pk1col4) REFERENCES primarykey1 ON DELETE CASCADE CREATE TABLE primarykey2 (pk2col1 INT, pk2col2 INT, pk2col3 INT, pk2col4 INT, PRIMARY KEY (pk2col1, pk2col2)) ALTER TABLE primarykey2 ADD FOREIGN KEY (pk2col3, pk2col4) REFERENCES primarykey2 ON DELETE CASCADE CREATE TABLE foreignkey1 (fkcol1 INT, fkcol2 INT, fkcol3 INT, fkcol4 INT) ALTER TABLE foreignkey1 ADD FOREIGN KEY (fkcol1, fkcol2) REFERENCES PRIMARYKEY1 ALTER TABLE foreignkey1 ADD FOREIGN KEY (fkcol3, fkcol4) REFERENCES PRIMARYKEY2 SELECT * FROM dbo.fSQLForeignKeys ('Demodata', 'primarykey%', 'foreignkey1')
結果セット(スペースを考慮して短縮されています):
FKCOLUMN_NAME DELETE_RULE FK_NAME PK_NAME ============= =========== ========== ========== fkcol1 1 FK_0fkcol1 PK_pk1col1 fkcol2 1 FK_0fkcol1 PK_pk1col1 fkcol3 1 FK_0fkcol3 PK_pk2col1 fkcol4 1 FK_0fkcol3 PK_pk2col1 4 行が影響を受けました。
|