0

我有一个Task作为TaskId主键的表。另一个表作为TimeSheetTaskId键。我创建了这样的外键关系

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

实际上,如果我尝试删除(或更新)任务表中的一行,它应该显示有关外键关系的错误。如果我尝试在TimeSheet表中删除,我不应该得到任何错误。

但是对我来说,如果我尝试在TimeSheet表中删除或更新,我会收到 547 错误。外键列(表TaskId中)允许空值。TimeSheet

我应该在这里做什么?Task如果我尝试在父表( )中删除或更新,我想抛出错误,如果我尝试在子表( )中删除或更新,则没有错误TimeSheet

4

1 回答 1

0

如果我们使用外键:

每当主(引用)表中的行被删除(相应更新)时,具有匹配外键列的子(引用)表的相应行也将被删除(相应更新)。不是反义词。

如果您想按照您的问题工作,请尝试使用触发器。

于 2012-04-27T09:16:17.120 回答