Sql триггер для обновления в определенном столбце после вставки - PullRequest
0 голосов
/ 14 января 2019

Я сделал триггер, который должен обновить другое значение в той же таблице после того, как я произвожу вставку в таблицу. Я получаю результат, который ищу, но когда я спрашиваю своего учителя, верен ли он, он отвечает, что этот триггер обновляет «все» таблицы (?) И, следовательно, неверно. Он не объяснил бы больше, чем это (он такой учитель ...). Кто-нибудь может понять, что он имеет в виду? Не ищу правильный код, просто объяснение того, что я мог неправильно понять.

CREATE TRIGGER setDate
ON Loans
AFTER INSERT 
AS
BEGIN
UPDATE Loans
set date = GETDATE()
END;

1 Ответ

0 голосов
/ 14 января 2019

Ваш учитель намеревается сказать, что запрос обновляет все строки в таблице - возможно, вы ее неправильно поняли.

Лучший способ сделать то, что вы хотите, это использовать значение по умолчанию:

alter table loans alter column date datetime default getdate();

То есть триггер не нужен. Если вы использовали триггер, я дам вам две подсказки:

  • Триггер instead of.
  • inserted должно быть где-то в триггере.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...