powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хитр...ый тригер
5 сообщений из 5, страница 1 из 1
Хитр...ый тригер
    #32007566
remi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется сделать тригер, который при попытке изменения конкретного поля конкретным пользователем
оставляет в этом поле неизменное значение. Для остальных полей и пользователей все разрешено.
Подчеркиваю, не отвергает операцию, а при изменении данным пользователем содержимого пяти полей
изменяет требуемое для четырех, а пятое игнорирует (оставляет неизменным) без всяктх ошибок.
Зараннее преклоняюсь.
...
Рейтинг: 0 / 0
Хитр...ый тригер
    #32007570
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для SQL2K это делается с помощью instead-триггера:
create trigger ttt on MyTable
instead of update
as
update M set M.Fld1=I.Fld1, M.Fld2=I.Fld2, M.Fld3=D.Fld3
from MyTable M, Inserted I, Deleted D
where M.ID=I.ID and M.ID=D.ID

Если у тебя семерка, можно сделать внутри простого триггера аналогичную повторную модификацию без отката транзакции.
...
Рейтинг: 0 / 0
Хитр...ый тригер
    #32007573
remi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня семерка, идею понял. Но когда я в тригере для update вызываю команду update..., то как я выйду из каскада рекурсий?
...
Рейтинг: 0 / 0
Хитр...ый тригер
    #32007574
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create trigger upd_Table1 on Table1
for update
as
begin
if update (col5) and system_user = 'sa'
update table1 set col5 = deleted.col5 from deleted, table1 where table1.objectGUID = deleted.objectGUID
end
...
Рейтинг: 0 / 0
Хитр...ый тригер
    #32007576
remi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все сложилось, хотя не понял как.
Искренняя благодарность, признательность, восхищение и ваще.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хитр...ый тригер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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