SQL Server 2005级联删除

Cur*_*ite 4 sql-server sql-server-2005

我不是100%确定级联删除是如何工作的.

我有简单的表,看起来像这样

用户User_ID

ExtendedUser User_ID

评论User_Id

帖子User_ID

我基本上有大量的表引用User的User_ID.我想在一个表上设置级联删除,以便我可以删除User对象并确保删除所有引用User的表.

但是,我的理解是我需要在每个引用User的表上设置删除操作.我需要在每个子表上设置"级联删除".我的理解是否正确?

SQL Server级联

更新:看起来我必须为每个关系设置它.我应该在哪里将这些关系视为"存储"?也许我的观念不对.

看起来我可以使用父表中的管理工作室为每个关系设置所有参照完整性规则.

p.c*_*ell 8

对于每种关系,您可以指定要采取的操作.

最简单的方法是使用SQL Server Management Studio.设计父表,找到所有PK-FK关系.

对于每个,选择发生Delete事件时要采用的路径:

  • 无动作 - 这会在发生时导致FK错误
  • 级联 - 删除子记录
  • 设置为null - FK列值将为null.当子表中不允许空值时,这会引发错误.
  • 设置默认值 - 如果子表上的FK列具有默认值,则它将是子列中的新值.

在此输入图像描述