用于插入和更新的SQL触发器

时间:2013-06-17 08:48:25

标签: sql-server triggers

Sql新手需要帮助。

我在Insert上有一个带有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

但是,我还需要触发器才能触发更新。这可能是在同一个触发器内,还是我必须创建一个新的更新'触发?

1 个答案:

答案 0 :(得分:2)

只需将UPDATE添加到操作列表中即可。

您需要检查相同的逻辑是否适用于UPDATE以及原始INSERT。

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

CREATE TRIGGER MSDN article