2010-07-14 2 views
0

Предположим, что таблица A имеет две дочерние таблицы, B и C с каскадным удалением между A-B и каскадным удалением между A-C.SQL Server Несколько каскадных последовательностей

Когда строка удаляется в A, соответствующие строки из B и C удаляются.

Как SQL Server определяет порядок срабатывания каскадов? Мне нужно, чтобы стрелять каскадом A-C перед тем, как каскад A-B устранит пожары.

Я знаю, что могу сделать это с помощью триггеров, но я не хочу, если только мне это не нужно.

+1

Вам не нужно CASCADE DELETE или триггеры - просто обработайте правильный порядок в хранимой процедуре. –

+0

С каскадным удалением вы не имеете контроля над порядком, в котором они выполняются, но вы также не контролируете порядок, в котором выполняются несколько триггеров одного и того же типа. –

ответ

4

Если заказ является таким важным, это запах дизайна базы данных, а также указывает на то, что вы, вероятно, не должны использовать каскадные удаления для этой операции целостности данных.

+2

+1 Если вы не можете стрелять и забывать, не стреляйте. –