【问题标题】:SQL Trigger for Insert and Update插入和更新的 SQL 触发器
【发布时间】:2013-06-17 16:51:48
【问题描述】:

需要帮助的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

但是,我还需要触发器在更新时触发。这可能在同一个触发器中还是我必须创建一个新的“更新”触发器?

【问题讨论】:

  • 创建新的更新触发器....
  • 触发器运行一次,无论有多少行受到影响。对于 some 行与您的 EXISTS 检查匹配而 some 行不匹配的情况,您的触发器是否正确?

标签: sql-server triggers


【解决方案1】:

只需将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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多