Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров / 4 сообщений из 4, страница 1 из 1
05.11.2002, 15:10:22
    #32064987
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
Исходное положение:
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
05.11.2002, 18:31:39
    #32065085
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
Update нужно завернуть в ELSE
...
Рейтинг: 0 / 0
05.11.2002, 19:32:45
    #32065112
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
А set nocount on стоит?
...
Рейтинг: 0 / 0
06.11.2002, 07:30:37
    #32065165
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к гуру:)) Что и как надо возвращать из INSTEAD OF триггеров
Заворачивать в ELSE нет нужды, я поставил после RAISERROR оператор RETURN (в том коде его еще нету)

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


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