Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не удаляет из foreign key таблицы.  [new]
?
Guest
Есть процедура
 	DELETE Link WHERE PyroLinkId = @LinkId  
 	DELETE DOT WHERE PyroDOTId = @PyroDOTId 
Таблицы связаны ключём, но я его удаляю из первой таблицы.
И выдаётся запись что (1 row(s) affected), тем не менее удаление из второй таблицы выдаёт ошибку

The DELETE statement conflicted with the REFERENCE constraint "FK_DOT_Link". The conflict occurred in database "My_Database",
 table "dbo.DOT", column 'DOTRefLink'.The statement has been terminated.

Как сделать так чтобы удаление из первой таблицы имело эффект до того как начнётся удаление из второй?
4 сен 13, 17:26    [14795639]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
GO
4 сен 13, 17:29    [14795664]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
?
Guest
Ivan Durak,

Это только часть достаточно большой процедуры, если я сделаю GO то все мои переменные и декларации которые были объявлены до этого потеряются.
4 сен 13, 17:33    [14795686]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
EXECUTE(N'DELETE Link WHERE PyroLinkId='+CAST(@LinkId AS NVARCHAR));
??
4 сен 13, 17:37    [14795704]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
?
Как сделать так чтобы удаление из первой таблицы имело эффект до того как начнётся удаление из второй?


Чудес не бывает. Вы не все значения вторичного ключа удаляете в первом delete. Почему бы вам не проверить этот факт?
На такую мысль навеяло вот это:
Какое отношение имеет удаление по фильтру @PyroDOTId к удалению по фильтру @LinkId ?
4 сен 13, 17:42    [14795727]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Ivan Durak, iap

это чего - конец дня сказывается? оно и без отдельного батча будет "иметь эффект до того как начнётся удаление из второй". не на этапе же компиляции fk констрейнты проверяются.

а автор, надо полагать, удаляет из второй таблицы записи, никак не связанные с теми, которые были удалены из первой.
4 сен 13, 17:43    [14795729]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а вы не путаете ничего? а то очень похоже..
4 сен 13, 17:43    [14795731]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
очень похоже,что операторы надо поменять местами
4 сен 13, 17:49    [14795753]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
?
Guest
Primery key из таблице Link является foregn key для таблицы DOT, никаких других ключей в таблице Link нет.
4 сен 13, 17:55    [14795770]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
?
Guest
Переставила местами, та-же ошибка.
4 сен 13, 17:57    [14795775]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
daw
Ivan Durak, iap

это чего - конец дня сказывается? оно и без отдельного батча будет "иметь эффект до того как начнётся удаление из второй". не на этапе же компиляции fk констрейнты проверяются.

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

точняк. Афтар - удаляй правильные записи и не ииии мозги
4 сен 13, 18:02    [14795796]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляет из foreign key таблицы.  [new]
?
Guest
Всем спасибо.
Вы абсолютно правы.
4 сен 13, 18:04    [14795813]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить