2014-11-05 38 views
0

下降約束級聯相當於在Oracle中,刪除約束PK_SAI我使用的語法:甲骨文在SQL服務器

ALTER TABLE "SAISIE" 
    DROP CONSTRAINT "PK_SAI" CASCADE; 

什麼是該SQL Server中的相同呢?

+0

當您在Oracle中執行「CASCADE」時,會發生什麼? – 2014-11-05 15:19:47

+0

當刪除父表的行時,它將刪除子表中的相應行,因此不存在孤兒數據 – mounaim 2014-11-05 15:22:31

+0

好吧,在父行被刪除時,它在SQL中執行的操作相同,但是當DROP CONSTRAINT在Oracle中? – 2014-11-05 16:31:06

回答

2

您正在考慮FOREIGN KEY約束中的CASCADE特性,與實際的DELETE語句有關。

ALTER TABLE t2 add constraint FK_T2 foreign key(t_id) references t(id) 
    ON DELETE CASCADE; 

使用CASCADE刪除約束不會刪除任何行。

如果您啓用了ON DELETE CASCADE,DELETE將刪除行。

刪除約束只會刪除約束(以及相關索引和依賴約束),而不是數據行。在SQL Server ALTER TABLE ...中,我不知道Oracle中有一個「CASCADE」選項。

從甲骨文的文檔http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm#i2103845的ALTER TABLE語句:如果你想依賴於下降完整性約束所有其他完整性約束

CASCADE指定CASCADE被也下降。