我有一个代表用户的表。当用户被删除时,我得到:
DELETE语句与REFERENCE约束冲突
显然,CASCADE DELETE
并不像我在SQL Server中想象的那么容易,并且需要将该选项添加到表中。
问题是:我无法弄清楚如何添加CASCADE DELETE
选项。
我正在使用: SQL Server 2008 。任何想法如何做到这一点?
答案 0 :(得分:27)
首先阅读这篇Microsoft文章。 Read Me。我在设计过程中使用GUI,所以这里是SSMS中如何选择它的图片。 添加到外键的语法是“ON DELETE CASCADE”
答案 1 :(得分:17)
Google 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;
答案 2 :(得分:15)