多個插入我得到了以下觸發我的SQL Server 2008數據庫SQL Server 2008中超過20桌
CREATE TRIGGER tr_check_stoelen
ON Passenger
AFTER INSERT, UPDATE
AS
BEGIN
IF EXISTS(
SELECT 1
FROM Passenger p
INNER JOIN Inserted i on i.flight= p.flight
WHERE p.flight= i.flightAND p.seat= i.seat
)
BEGIN
RAISERROR('Seat taken!',16,1)
ROLLBACK TRAN
END
END
上的觸發拋出錯誤,當我嘗試運行下面的查詢。這個查詢我應該在兩個不同的航班上插入兩個不同的乘客在數據庫中。我敢肯定,兩個席位都沒有拿,但我不明白爲什麼觸發器會給我這個錯誤。它是否必須採取相關措施?
INSERT INTO passagier VALUES
(13392,5315,3,'Janssen Z','2A','October 30, 2006 10:43','M'),
(13333,5316,2,'Janssen Q','2A','October 30, 2006 11:51','V')
UPDATE: 表看起來如下
CREATE TABLE Passagier
(
passengernumber int NOT NULL CONSTRAINT PK_passagier PRIMARY KEY(passagiernummer),
flight int NOT NULL CONSTRAINT FK_passagier_vlucht REFERENCES vlucht(vluchtnummer)
ON UPDATE NO ACTION ON DELETE NO ACTION,
desk int NULL CONSTRAINT FK_passagier_balie REFERENCES balie(balienummer)
ON UPDATE NO ACTION ON DELETE NO ACTION,
name varchar(255) NOT NULL,
seat char(3) NULL,
checkInTime datetime NULL,
gender char(1) NULL
)
什麼是表模式嗎? – gbn 2010-04-27 18:45:10
對於荷蘭語和英語的混合感到抱歉。但我在荷蘭工作,只爲了更好的理解在這裏翻譯;-) – Rob 2010-04-27 18:58:13