Я создал триггер, чтобы проверить разницу во времени, поэтому по истечении времени аукцион закрывается, поворачивая 0 в 1. Но когда я обновляю таблицу, мой триггер не срабатывает. Надеюсь, кто-нибудь поможет мне с этим.
CREATE TABLE Voorwerp (
voorwerpnummer BIGINT IDENTITY(30068720558,1)
NOT NULL,
titel VARCHAR(100)
NOT NULL,
beschrijving VARCHAR(max)
NOT NULL,
Startprijs NUMERIC(10,2)
NOT NULL,
Betalingswijze VARCHAR(20)
NOT NULL,
betalinginstructie VARCHAR(80)
NULL,
plaatsnaam VARCHAR(28)
NOT NULL,
Land VARCHAR(35)
NOT NULL,
Looptijd TINYINT DEFAULT ((7))
NOT NULL,
LooptijdbeginDag DATE DEFAULT GETDATE()
NOT NULL,
LooptijdbeginTijdstip TIME(0) DEFAULT convert(time,getdate())
NOT NULL,
Verzendkosten NUMERIC (8,2)
NULL,
verzendinstructies VARCHAR (125)
NULL,
Verkoper VARCHAR (255)
NOT NULL,
Koper VARCHAR (255)
NULL,
LooptijdeindeDag AS DATEADD(DAY,Looptijd,looptijdbeginDag),
looptijdeindeTijdstip TIME(0) DEFAULT convert(time,getdate())
NOT NULL,
VeilingGesloten BIT
NOT NULL,
Verkoopprijs NUMERIC(10,2)
NULL,
CREATE TRIGGER Trigger_IsVeilingGesloten ON dbo.Voorwerp /* AF3 */
AFTER UPDATE
AS
BEGIN
DECLARE @Veilinggesloten bit
DECLARE @Voorwerpnummer bigint
DECLARE @LooptijdeindeDag date
DECLARE @LooptijdeindeTijdstip time
DECLARE @Looptijd tinyint
DECLARE @datediff int
DECLARE @timediff int
SELECT @datediff = DATEDIFF(DD,GETDATE(),@LooptijdeindeDag) From inserted
SELECT @timediff = DATEDIFF(ss,GETDATE(),@LooptijdeindeTijdstip) From inserted
SELECT @Veilinggesloten = VeilingGesloten FROM inserted
SELECT @Voorwerpnummer = Voorwerpnummer FROM inserted
SELECT @LooptijdeindeDag = LooptijdeindeDag FROM inserted
SELECT @Looptijd = Looptijd FROM inserted
SELECT @LooptijdeindeTijdstip = LooptijdeindeTijdstip FROM inserted
S
BEGIN
IF(@Veilinggesloten = 0 AND @datediff<=0 AND @timediff<=0)
BEGIN
UPDATE Voorwerp SET VeilingGesloten = 1 WHERE Voorwerpnummer = @Voorwerpnummer
END;
END;
END;
GO