如何在SQL Server 2008中建立CASCADE表关系?

时间:2018-08-13 18:39:48

标签: sql sql-server sql-server-2008 cascade

我有5个连接在一起的表:

Table A
Table B
Table C
Table D
Table E
  • 表A PKCode列。
  • 表B PKCode列。
  • 表C PKNumber列。
  • 表D PKNumber列。
  • 表E PKName列。

上表之间的关系是下一个:

  • 表A PK在表B FK列中有ACode
  • 表A PK在表C FK列中有ACode
  • 表A PK在表E FK列中有ACode

  • 表B PK在表C FK列中有BCode

  • 表B PK在表E FK列中有BCode

  • 表C PK在表D FK列中有CNumber

以上部分在Microsoft SQL Server Management Studio中组织起来非常简单。现在,我想在所有FK列的Update上创建CASCADE。例如,如果表A中的PK得到更新,则其他列(B,C和E)中的所有其他FK也应更新。这是值得推荐的吗?如何在SQL Server 2008中实现呢?

1 个答案:

答案 0 :(得分:2)

这通常是在创建PK-FK关系时完成的,但是您以后应该可以这样做。参见ALTER TABLE table_constraint

在您的情况下,应该执行以下操作:

ALTER TABLE CONSTRAINT -- name of your PK constraint
    PRIMARY KEY CLUSTERED|NOCLUSTERED (...) FOREIGN KEY REFERENCES ...
ON DELETE CASCADE
ON UPDATE CASCADE