Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Рекурсия в каскадном удалении  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1418
Ситуация такая.
У меня есть таблица Object(ObjectID:int,ObjectTypeID:int)
Есть таблица Link(From:int;To:int; LinkTypeID:int)
Между Object и Link установлено отношение (1 ко многим). по полю ObjectID и From и аналогичное отношение по полю ObjectID и To. И вот теперь мне необходимо еще добавить каскадное удаление для этих двух отношений с тем что-бы при удалении элемента из Object удалились и все связи этого элемента. При этом сами элементы кончно не должны удалятся. В MS Access такая штука проходит, а вот тут не получается.
Получаем следующее сообщение:
- Unable to create relationship 'FK_Link_Object1'.
ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]Introducing FOREIGN KEY constraint 'FK_Link_Object1' on table 'Link' 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.

Как это обойти?

К сообщению приложен файл. Размер - 0Kb
3 сен 05, 10:32    [1843301]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в каскадном удалении  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
перетащи удаление из таблицы связей в триггер на удаление объектов
3 сен 05, 10:47    [1843311]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в каскадном удалении  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1418
Ну если не подскажут еще что-то то так и сделаю. Но мне непонятно, почему в акцесе это проходит а вот в sql-сервере нет. Вроде одна контора клепает, а результаты разные.
3 сен 05, 15:54    [1843574]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в каскадном удалении  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Страдалецъ
Ну если не подскажут еще что-то то так и сделаю. Но мне непонятно, почему в акцесе это проходит а вот в sql-сервере нет. Вроде одна контора клепает, а результаты разные.

Хуже было бы, если результат был одинаковый.
3 сен 05, 15:55    [1843575]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в каскадном удалении  [new]
hamanu
Member

Откуда:
Сообщений: 31
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q321/8/43.asp&NoWebContent=1

ну не могут они
5 сен 05, 12:24    [1846053]     Ответить | Цитировать Сообщить модератору
 Re: Рекурсия в каскадном удалении  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1418
Хреново однако, я ведь ради этого специально убрал родной автоинкримент с объекта и свой собственный сбацал. Придется все как всегда ручками лепить.
До чего дошел "Прогресс".
А в 2005 SQL серваке такая-же беда?
5 сен 05, 20:59    [1848434]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить