Предположим, у меня есть таблица my_table(id, x, y)
.Я хочу написать триггер, чтобы предотвратить обновление столбца y
и установить его в значение non-null
, если x
уже null
.Поскольку в SQL Server нет триггера до обновления, как это можно сделать?По-видимому, мы можем использовать триггер instead of
для этой цели, но как мы можем проверить старые и текущие значения и решить, следует ли нам выдавать ошибку или позволить обновлению выполняться нормально?
Пример:
Давайте представим, что у нас есть эта строка в БД:
1, null, null
Тогда это не удастся (ошибка повышения)
update my_table set y = 'blah' where id = 1;
Но это должно произойти:
update my_table set y = null where id = 1;
Я знаю, что пример не очень значимый, но он похож на то, чего я пытаюсь достичь.