小编Dat*_*ger的帖子

SQL Server 插入后触发器不执行操作

我有 2 个插入后触发器和 1 个而不是插入触发器的问题。After Insert 触发器应该执行一些操作,但不会触发这些操作。

当替代触发器触发时,它们的动作 After Triggers 工作正常。

让我解释:

“替代”触发器验证该ID值是否为 Null。如果是,则触发器在表 ( TRADE_APPR) 中执行插入操作,填充IDSQL Server 序列中的值。

当替代触发器执行操作时,插入后触发器也执行它们的操作。

我的而不是插入触发器的代码是这样的:

ALTER TRIGGER [ConfirmMgr].[TG_TRADE_APPR_BER_I] 
ON [ConfirmMgr].TRADE_APPR] 
INSTEAD OF INSERT
AS
   DECLARE
      @user_name            varchar(50),
      @appr_username        varchar(50),
      @appr_id          int,
      @v_id             int,
      @appr_timestamp       datetime
BEGIN 
    SELECT @appr_username = APPR_BY_USERNAME FROM inserted

    IF (@appr_username) IS NULL
    BEGIN
            SELECT @user_name = SUSER_NAME()
            UPDATE tbl SET APPR_BY_USERNAME = UPPER(@user_name)
            FROM ConfirmMgr.TRADE_APPR tbl
            INNER JOIN inserted i ON tbl.ID = i.ID
    END …
Run Code Online (Sandbox Code Playgroud)

trigger sql-server dml sql-server-2012

2
推荐指数
1
解决办法
5066
查看次数

标签 统计

dml ×1

sql-server ×1

sql-server-2012 ×1

trigger ×1