У меня проблема при создании триггера для вставки данных.У меня есть 2 компьютера, и я хочу написать веб-сайт для всех, чтобы заказать и арендовать его по времени.Но у меня проблемы с написанием функции аренды для вставки данных в таблицу заказов.Если компьютер имеет id = 1, заказанный в 7:00 утра - 9:00 утра, с 12:00 до 14:00. Как я могу запретить пользователям устанавливать его в это время или в прошлом с помощью триггера * 1001?*
Я пытаюсь написать триггер, но он не работает
==========================Booking====================
id_booking |id_user |total_price |status_booking |id_cpt |start_time |end_time |time_create
3 1 NULL NULL 22 1998-01-01 01:00:00.000 1998-01-01 03:00:00.000 NULL
4 1 NULL NULL 22 1998-01-01 05:00:00.000 1998-01-01 07:00:00.000 NULL
5 2 NULL NULL 23 1998-01-01 07:00:00.000 1998-01-01 09:00:00.000 NULL
========================================================
======================Computers==========================
id_cpt code_computer id_status_cpt id_room
22 VIP01 1 1
23 VIP02 1 1
=========================================================
Мой триггер
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE TRIGGER beginInsert
ON booking
for insert
AS
BEGIN
--BEGIN DECALRE---
declare @id_user int
declare @total_price int
declare @status_booking int
declare @id_cpt int
declare @start_time datetime
declare @end_time datetime
declare @time_create datetime
declare @start_time_oder datetime
declare @end_time_order datetime
declare @check_time bit
--END DECALRE---
--SET VALUE OF VARIABLE---
select @id_cpt=id_cpt, @start_time_oder=@start_time_oder, @end_time_order=@end_time_order, @status_booking=0, @check_time=0
from inserted
--GET TIME IN BOOKING TO CHECK--
select @start_time=booking.start_time, @end_time=booking.end_time from booking
--END GET TIME IN BOOKING TO CHECK--
--SET VALUE OF VARIABLE---
if (@start_time_oder <@end_time_order)
begin
print(@start_time)
print(@start_time_oder)
if (@start_time_oder < @start_time and @end_time_order <@start_time) or (@start_time_oder > @end_time and @end_time_order >@end_time)
begin
insert into booking values(@id_user, @total_price, @status_booking,@id_cpt,@start_time_oder, @end_time_order, @time_create)
end
else
rollback transaction
end
else
rollback transaction
END GO
Ожидаемый результат: когда пользователь выбирает идентификатор компьютера = 22 и заказывает его, он не может заказать этот компьютер с 1998-01-01 01: 00: 00.000 до 1998-01-01 03: 00: 00.000 и 1998-01-01 05:00: С 00.000 по 1998-01-01 07: 00: 00.000
Так много всего !!!