58

私は2つのテーブルを持っています

Table1(
  FileID,
  BundledFileID,
  Domain)

Table2(
  FileID,
  FileType,
  FileName)

Table2のFileIDandFileTypeは複合主キーです。Table1.FileID からへの外部キー関係を作成したいTable2

これを行うことは可能ですか?

4

3 に答える 3

98

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 関係を作成することはできません。 .

于 2010-10-22T12:45:05.547 に答える
4

マークはすでにかなり良い答えを出しました。Table1の行が1つのタイプのファイル(FileType'ABC'など)にのみ関連している場合は、FileTypeを計算列としてTable1に追加できます。

ALTER TABLE Table1 ADD FileType as 'ABC'

その後、外部キーで使用できます。

于 2010-10-22T12:54:40.097 に答える