0

主キーとしてテーブルがありTaskます。そして、外部キーとしてTaskIdの別のテーブル。このような外部キー関係を作成しましたTimeSheetTaskId

ALTER TABLE TimeSheet ADD CONSTRAINT fk_TimeSheet_TaskId FOREIGN KEY(TaskId)
REFERENCES Task (TaskId)
GO

実際、タスクテーブルの行を削除(または更新)しようとすると、外部キー関係に関するエラーが表示されるはずです。また、テーブルで削除しようとしてTimeSheetも、エラーは発生しません。

しかし、テーブルを削除または更新しようとすると、547エラーが発生しTimeSheetます。(表の)外部キー列ではnullを使用できますTaskIdTimeSheet

ここで何をすればいいですか?親テーブル(Task)で削除または更新しようとするとエラーをスローし、子テーブル(TimeSheet)で削除または更新しようとするとエラーなしをスローします。

4

1 に答える 1

0

FOREIGN KEYを使用する場合:

マスター(参照)テーブルの行が削除(または更新)されるたびに、外部キー列が一致する子(参照)テーブルのそれぞれの行も削除(または更新)されます。逆ではありません。

質問どおりに作業したい場合は、トリガーを使用してみてください。

于 2012-04-27T09:16:17.120 に答える