Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Глюк с удалением   Найти похожие ветки 

 
Монг   (2006-10-30 13:39) [0]

У меня есть 2 таблицы на mssql сервере. Связь между ними один ко многим. При удалении из одной таблицы записи в моей програме, должны удаляться автоматичиски записи из второй таблицы, которые к ней привязаны через ключевое поле, записей может быть несколько. Повесил я тригер на эту таблицу, который срабатывает на удаление. После того как я повесил тригер,в програме стала выдаваться ошибка "Недостаточные или неполные сведенья о ключевом поле, обновление влияет на слишком большое количевство записей". Причём работает всё как надо, нужные записи удаляються, а только генерируеться ошибка. Почему она вылизает и как от неё избавиться ? Можно её конечно обработать, но это наверное криво ?


 
sniknik ©   (2006-10-30 14:05) [1]

> Почему она вылизает и как от неё избавиться ?
RecordAffected(по названю ADO, для mssql @@ROWCOUNT) в тригере сбивается, ожидается что измениться 1 запись, а у тебя последнее изменение влияет на много записей (возможно не только изза триггера а изза отсутствия ключа например).

сделай нормально на FOREIGN KEY Constraints.


 
Монг   (2006-10-30 14:34) [2]

А можно поконкретней как это сделать ?


 
sniknik ©   (2006-10-30 14:46) [3]

нет. нет "конкретной" информации в вопросе, без которой(проверки) это всего лиш догадка... а расписывать догадки это замороченно.
но даже если бы и была, все одно BOL это более полно распишет чем я (и главное без малейших усилий с моей стороны ;о))).


 
DiamondShark ©   (2006-10-30 15:28) [4]


> Почему она вылизает и как от неё избавиться ?

потому что оператор в триггере возвращает счётчик строк.

избавиться -- либо добавить в триггер команду
SET NOCOUNT ON
либо, действительно, сделать FOREIGN KEY с каскадным удалением (если сервер 2000 и выше, в 7.0 каскадного удаления нет).


 
Монг   (2006-10-31 06:56) [5]

>потому что оператор в триггере возвращает счётчик строк.

>избавиться -- либо добавить в триггер команду
>SET NOCOUNT ON

Большое спасибо помогло )



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
15-1162528208
BorisMor
2006-11-03 07:30
2006.11.19
трабл в Turbo Delphi


2-1162490522
nordic3
2006-11-02 21:02
2006.11.19
Перерисовка Image


3-1158563222
svt
2006-09-18 11:07
2006.11.19
Подскажите пожайлусата как подключиться к базе MSSQL через


2-1162289364
ph0sgen
2006-10-31 13:09
2006.11.19
Версия файла


15-1162381911
StriderMan
2006-11-01 14:51
2006.11.19
Что мешает программистам работать дома?