我有一个包含以下列的表。
ID int PK
Name nvarchar(50) NotNull
FID int FK reference to ID
ID Name PK
1 A Null
2 B Null
3 C 1
4 D 1
5 E 1
6 F 2
因此,主键包含在表中作为主键。如果删除主键,我想这样做,自动删除包含主键的行作为外键。 (例如:当我删除ID 1行时,我想自动删除ID 3,4,5行。)。如何将主键作为外键包含在表中?我怎样才能做到这一点。感谢。
答案 0 :(得分:3)
您需要实现执行“级联删除”的“触发器”。
这是一个很好的链接:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=142564
CREATE TRIGGER test_trig
ON dbo.Table_1
FOR DELETE
AS
BEGIN
delete a from dbo.Table_2 a
JOIN
deleted d
ON a.joincol = d.joincol
END
以下是其他一些选择:
以下是Microsoft关于“级联参照完整性约束”文档的链接:
答案 1 :(得分:1)
注意:在Microsoft SQL中,不允许对自引用表进行级联删除。您必须使用触发器,创建存储过程或处理来自调用应用程序的级联删除。这方面的一个示例是,单个表具有ID作为标识,而ParentID与同一表中的ID具有关系。
答案 2 :(得分:0)