2

我正在删除选项上测试不同的外键。我累了级联,没有动作,设置为空,所有的作品,除了设置默认值。SQL SERVER 只报告错误:

消息 547,级别 16,状态 0,第 1 行 DELETE 语句与 FOREIGN KEY 约束“FK_child_parent”冲突。冲突发生在数据库“Test”、表“dbo.Test_parent”、列“no”中。该语句已终止。

create table Test_parent(
    [no] int primary key    
)

CREATE TABLE test_child(
     SUB1 INT,
    [NO] int DEFAULT 0 CONSTRAINT FK_child_parent REFERENCES Test_parent([no]) ON DELETE set default
)

insert into Test_parent values(1),(2)

insert into test_child values(1, 1)
insert into test_child values(2, 1)

delete from Test_parent
4

1 回答 1

1

您删除了父表,这会触发子表中的设置默认值。数据库尝试将子记录设置为默认值0。但是父表中没有0记录,触发外键违规。

于 2012-11-16T15:29:46.537 回答