Ошибка создания триггера для вставки данных - PullRequest
0 голосов
/ 21 апреля 2019

У меня проблема при создании триггера для вставки данных.У меня есть 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

Так много всего !!!

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