SQL - триггер работает только после второго оператора - PullRequest
0 голосов
/ 15 мая 2019

У меня есть триггер, который должен проверить, не указана ли дата книги после даты проверки.Но когда я выполняю оператор с датой книги после даты проверки (чтобы проверить, работает ли мой триггер), он ничего не делает.Когда я делаю оператор во второй раз, триггер работает, вероятно, потому что есть строка, которая запускает триггер.Но я не понимаю, почему триггер не работает, когда я делаю «неправильный» оператор в первый раз

Это триггер и оператор, который должен запускать триггер.

create trigger t_check_date
on booking
after update, insert
as
if exists
(
select b.bookid
from booking b
join bookingroom bk
on b.bookid = bk.bookid
where b.bookdate >= bk.incheckdate
)
begin
    raiserror('Error',16,1)
    rollback transaction
end

Здесь операторы, сначала атрибуты, а затем значения.

insert into booking values (bookdate, count_person, hotelid, rating, customerid, employeeid )
insert into booking values ('2019-05-17', 1, 1, 1, 1, 1 )
insert into bookingroom values (roomnumber, incheckdate, chechoutdate)

insert into bookgingroom values (4, '2018-06-01','2019-08-02')

Так что, когда я выполняю операторы, один раз триггер не делает ничего, кроме второго раза, когда он это делает.

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