Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.035 c
15-1162190909
Prohodil Mimo
2006-10-30 09:48
2006.11.19
Как проверить рабочий ли COM порт?


15-1162137014
Ketmar
2006-10-29 18:50
2006.11.19
softwarer.ru


15-1161945344
Сатир
2006-10-27 14:35
2006.11.19
Придумайте название для новой торговой системы.


15-1162084362
MultiLang
2006-10-29 04:12
2006.11.19
Функция перевода файлов *.pas в структуру элементов языка ?


2-1162433136
viper03
2006-11-02 05:05
2006.11.19
помогите с sql




   Наверх