1

こんにちは皆さん、私はms sql 2008 r2の2つのテーブルに関する解決策を探して試してみましたが、私のテーブルは次のとおりです。

table 1
pk personid varchar - i manually insert here from GUID
fname varchar
mname varchar
lname varchar
qualifier varchar

table 2
pk id - increment by 1
fk personid varchar
salary int
deductions int
salary_month int
salary_year int

ここでの私の目的は、削除したくない場合に、他のテーブルに外部キーがあるエントリを知ることです

私は本当に助けが必要です 私は数週間それを試してきました

4

2 に答える 2

-1

データベースに存在するすべての外部キーのリストを表示するクエリを次に示します。

select FK.name as [Foreign_Key_Name], T.name as [Referenced_Table], T2.name as [Parent_Table]
from sys.foreign_key_columns FKC
inner join sys.tables T on FKC.referenced_object_id = T.object_id
inner join sys.tables T2 on FKC.parent_object_id = T2.object_id
inner join sys.foreign_keys FK on FKC.constraint_object_id = FK.object_id

外部キーのように使用される列がいくつかあるが、データベース内に実際の FK オブジェクトがない場合は、次のようなことを試すことができます

select *
from table1 T1
inner join table2 T2 on T1.ColumnX = T2.ColumnY

クエリがこれらの 2 つの列よりも多くの行を返す場合、おそらく FK 関係にあります。

于 2013-08-21T14:52:05.120 に答える