2014-11-05 2 views
0

В Oracle отказаться от ограничений PK_SAI я использую следующий синтаксис:Oracle падение ограничения каскадного эквивалент в Sql Server

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

Что является эквивалентом этого в SQL Server?

+0

Что делает «CASCADE», когда вы делаете это в Oracle? –

+0

, когда строки родительской таблицы удаляются, он удаляет соответствующие строки в дочерних таблицах, поэтому нет данных-сирот – mounaim

+0

Хорошо, он делает то же самое в SQL, когда родительские строки удаляются, но что он делает, когда вы DROP CONSTRAINT в Oracle? –

ответ

2

Вы думаете о функции CASCADE для ограничений FOREIGN KEY в отношении фактических операторов DELETE.

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

Удаление ограничения с помощью CASCADE не удаляет строки.

DELETE удаляет строки, если вы включили ВКЛ. УДАЛИТЬ КАСКАД.

Удаление ограничения просто снижает ограничение (и связанные индексы и зависимые ограничения), а не строки данных. В SQL Server ALTER TABLE ... Я не знаю, что есть опция «CASCADE», как в Oracle.

От Oracle документации http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm#i2103845 для утверждения ALTER TABLE:

КАСКАД Указать CASCADE, если вы хотите, чтобы все другие ограничения целостности, которые зависят от отброшенной ограничения целостности, чтобы быть отброшен, а также.

Смежные вопросы