私は2つのテーブルを持っています
Table1(
FileID,
BundledFileID,
Domain)
そして
Table2(
FileID,
FileType,
FileName)
表2では、FileID
とFileType
は複合主キーです。 Table1.FileID
からTable2
への外部キー関係を作成したい。
これを行うことは可能ですか?
Table2には複合主キー(FileID, FileType)
があるため、その参照にはboth columnsも含める必要があります。
ALTER TABLE dbo.Table1
ADD CONSTRAINT FK_Table1_Table2
FOREIGN KEY(FileID, FileType) REFERENCES Table2(FileID, FileType)
Table2.FileID
フィールドに一意の制約/インデックスがない場合(ただし、そうであれば、なぜこれがPKではないのですか?)、ターゲットテーブル上のPKの一部のみにFK関係を作成できません。できません。
marcはすでにかなり良い答えを出しています。 Table1の行が1種類のファイル(FileType 'ABC'など)にのみ関連している場合、計算列としてFileTypeをTable1に追加できます。
ALTER TABLE Table1 ADD FileType as 'ABC'
これは、外部キーで使用できます。