0

私のデータベースにはこのテーブルがあります:

予約(PK数、部屋番号、予約日)

予約する前に、トリガーを使って部屋が空いていないか確認したいのですが。

これは私が試したスクリプトです:

ALTER TRIGGER Verifier_chambre_prise ON reservation
INSTEAD OF INSERT
AS
    BEGIN

        IF EXISTS ( SELECT * FROM reservation
                    WHERE [room number] = (SELECT [room number] FROM INSERTED)
                    AND [reservation date] = (SELECT [reservation date] FROM INSERTED))
            ROLLBACK TRANSACTION
        ELSE
                        INSERT INTO reservation  SELECT * FROM INSERTED
    END

存在する予約を追加すると、トランザクションがアクションを停止したというエラーが表示されますが、問題は、[予約日]と[部屋番号]を持つ行を追加しようとするとエラーになります。はすでにテーブルに存在し、この行は削除され、SQLServerがこの行を削除する理由がわかりません。

4

0 に答える 0