0

助けが必要なSQL初心者.

挿入時に SQL トリガーが発生するテーブルがあります。次のようになります。

ALTER TRIGGER Holiday_ITrig
ON HolidayDate
FOR INSERT
AS
IF NOT EXISTS (
                SELECT
                        ID
                    FROM
                        WorkingDay w
                    INNER JOIN
                        inserted i ON
                            w.ID = I.WorkingDayId
                    WHERE
                        WorkingDayTypeId = 2
                )
BEGIN
    ROLLBACK TRANSACTION
END

ただし、更新時に起動するトリガーも必要です。これは同じトリガー内で可能ですか、それとも新しい「更新」トリガーを作成する必要がありますか?

4

1 に答える 1

2

UPDATEアクションのリストに追加するだけです。

元の INSERT だけでなく UPDATE にも同じロジックが適用されることを確認する必要があります。

ALTER TRIGGER Holiday_ITrig
ON HolidayDate
FOR INSERT, UPDATE
AS
IF NOT EXISTS (
                SELECT
                        ID
                    FROM
                        WorkingDay w
                    INNER JOIN
                        inserted i ON
                            w.ID = I.WorkingDayId
                    WHERE
                        WorkingDayTypeId = 2
                )
BEGIN
    ROLLBACK TRANSACTION
END

トリガーを作成する MSDN の記事

于 2013-06-17T08:51:48.773 に答える