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