powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
4 сообщений из 4, страница 1 из 1
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
    #32064987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходное положение:
MS SQL 2000/MFC/ODBCRecordset
есть простая табличка и триггер INSTEAD OF UPDATE таблички.
фрагмент триггера:
.......
IF (not year(@docDate) = year(@lineDate)) or (not month(@docDate) = month(@lineDate))
BEGIN
ROLLBACK TRANSACTION
RAISERROR(50001,16,-1)
END

UPDATE documentpositions
SET document = inserted.document,
checktime = inserted.checktime,
budgetaccount = inserted.budgetaccount,
dictionaryIn = inserted.dictionaryIn,
dictionaryOut = inserted.dictionaryOut,
amountPlan = inserted.amountPlan,
amountFact = inserted.amountFact,
hint = inserted.hint
FROM inserted
.......

Проблема:
update выполняется правильно если запускать в QA,
update выполняется но потом летит исключение "Update or Delete failed" (именно так - безо всякихт там [Microsoft][ODBC SQL Server Driver] и проч...)

Убираешь триггер - всё работает отлично.

Дебаг показал, что надо чтобы статус у рекордсета был SQL_ROW_UPDATED, а он не такой :((


Кто может объяснить?
...
Рейтинг: 0 / 0
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
    #32065085
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Update нужно завернуть в ELSE
...
Рейтинг: 0 / 0
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
    #32065112
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А set nocount on стоит?
...
Рейтинг: 0 / 0
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
    #32065165
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заворачивать в ELSE нет нужды, я поставил после RAISERROR оператор RETURN (в том коде его еще нету)

SET NOCOUNT ON стоит сразу после первого BEGIN
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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