powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Каскадное удаление
3 сообщений из 3, страница 1 из 1
Каскадное удаление
    #32020363
andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли у кого-нибудь соображения по поводу того, почему нельзя настраивать каскадное удаление в следующей ситуации:

table1
pk id

table2
pk id
fk ref1
fk ref2

причем и ref1 и ref2 это ссылки на id в table1. SQL server говорит следующее:
ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]Introducing FOREIGN KEY constraint 'FK_Table2_table11' on table 'Table2' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not create constraint. See previous errors.
...
Рейтинг: 0 / 0
Каскадное удаление
    #32020368
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С точки зрения банальной эхрудиции ничего криминального нет. Но MS проще было проконтролировать графы на замкнутые контуры, нежели проверять, есть реально рекурсия или нет. В принципе, сидели бы там не Блины Гейтсы, а нормальные человеки, наверное смогли бы сделать и каскадные операции с рекурсией. К сожалению, это требует напряжение извилин, а существенных денежных вливаний только за эту возможность не получишь. Вот и получается, что напрягать извилины экономически не всегда выгодно.
А вот я когда только узнал о каскадных операциях в SQL2K, первым делом сделал таблицу:
Table1
ID PK
ParentID FK
причем ParentID ссылается на ID других записей в этой же таблице. Типичная структура для организации дерева. Представляете, как было бы удобно настроить каскадное удаление - у получить удаление всего поддерева при удалении записи-вершины дерева. К сожалению, SQL-сервер не дает делать каскадные операции на замкнутом графе связей и характерно ругается.
...
Рейтинг: 0 / 0
Каскадное удаление
    #32020402
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, ему не нравится два FK на одну главную таблицу. У него мозги путаются - по какому удалять первым
)
Вообще, каскадное удаление - условие, довольно сильно ограничивающее разработчика.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Каскадное удаление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]