26

我有一个代表用户的表格。当用户被删除时,我得到:

DELETE 语句与 REFERENCE 约束冲突

显然,CASCADE DELETE在 SQL Server 中并没有我想象的那么容易,需要将选项添加到表中。

问题是:我不知道如何添加该CASCADE DELETE选项。

我正在使用:SQL Server 2008。任何想法如何做到这一点?

4

3 回答 3

29

首先阅读这篇 Microsoft 文章。读我。我在设计过程中使用 GUI,所以这里是在 SSMS 中如何选择它的图片。 替代文字 添加到外键的语法是“ON DELETE CASCADE”

于 2010-12-15T21:20:06.957 回答
18

这是我将“级联删除”功能添加到SQL Server Management Studio中现有外键的方式。

首先,找到你的外键,并在一个新的查询窗口中打开它的“DROP and CREATE To”。

删除和创建

然后,只需将“ ON DELETE CASCADE”添加到“ ADD CONSTRAINT”命令中:

在删除级联

然后只需点击“执行”按钮即可运行查询。

任务完成 !

于 2016-03-09T08:46:09.177 回答
17

谷歌ALTER TABLE DROP CONSTRAINT,然后ALTER TABLE ADD CONSTRAINT

更改表

这是一个简单的例子:

CREATE TABLE A 
(
 ID INTEGER NOT NULL UNIQUE
);

CREATE TABLE B 
(
 ID INTEGER NOT NULL UNIQUE
    CONSTRAINT fk__B__A 
       REFERENCES A (ID)
);

-- Oops! Forgot the CASCADE referential actions.
-- DROP the constraint then recreate it:

ALTER TABLE B DROP
   CONSTRAINT fk__B__A;

ALTER TABLE B ADD
   CONSTRAINT fk__B__A
      FOREIGN KEY (ID)
      REFERENCES A (ID)
      ON DELETE CASCADE
      ON UPDATE CASCADE;
于 2010-12-15T21:07:48.860 回答