powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать старое значение поля в триггере при апдейте.
5 сообщений из 5, страница 1 из 1
Как узнать старое значение поля в триггере при апдейте.
    #32023777
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, не подскажет ли кто, как под MSSQL7.0SP3 в триггере узнать старое значение поля при его апдейте.
К примеру:
есть поле StockID его значение равно 10.
Есть инстркция Update tbl_StockTraffick Set StockID = 20.
И есть триггер на событие Update, в котором обновляются избыточные данные в другой таблице, причем, надо обновить данные как для StockID=10 так и для StockID = 20.

P.S. Я понимаю, что избыточность - это не очень хорошо, но она внесена из довольно веских соображений.

P.P.S. Я так-же понимаю, что это все можно сделать в sp до апдейта, но таких мест слишком много, чтобы можно было надеяться на 100% их обнаружение...
...
Рейтинг: 0 / 0
Как узнать старое значение поля в триггере при апдейте.
    #32023778
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старые значения хранятся в таблице deleted, доступной в триггере.
...
Рейтинг: 0 / 0
Как узнать старое значение поля в триггере при апдейте.
    #32024000
nic_ii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
триггер for Update может получить обновленные данные из таблицы Inserted, ну а старое значение полей до завершения триггера хранится в основной таблице. Так для твоего примера
SELECT StockID FROM Inserted выдаст 20 в то время как SELECT StockID FROM StockTraffick выдаст 1
...
Рейтинг: 0 / 0
Как узнать старое значение поля в триггере при апдейте.
    #32024014
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2nic_ii:
триггер for Update может получить обновленные данные из таблицы Inserted, ну а старое значение полей до завершения триггера хранится в таблице deleted.
А в основной таблице хранятся обновленные данные, т.е. такие-же, как и в Inserted.
...
Рейтинг: 0 / 0
Как узнать старое значение поля в триггере при апдейте.
    #32024023
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если Вы обновляете ключевые поля сразу у двух и более записей, то сопоставить что на что поменялось в принципе невозможно.
Не меняйте значение ключевых полей, благодаря им Вы сможете связывать таблицы Inserted и deleted
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать старое значение поля в триггере при апдейте.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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