“同时处理多行。减少并重试。” SQL Server Management Studio 中的错误

Mir*_*imu 0 trigger sql-server t-sql

尝试从 SQL Server Management Studio v18.5 更新某些行时出现此错误:

消息 50000,级别 16,状态 1,过程 UPDATElimit,第 7 行 [批处理起始行 0] 要同时处理许多行。减少并重试。Msg 3609, Level 16, State 1, Line 1 事务在触发器中结束。该批次已中止。

我怎样才能绕过这个限制?

触发代码:

ALTER TRIGGER [dbo].[UPDATElimit] 
on [dbo].[table] 
FOR UPDATE 
AS 
BEGIN 
    IF (select count(*) from inserted) > 1000 
    BEGIN 
        RAISERROR('To many rows being processed at one. Reduce and try again.', 16, 1) 
        ROLLBACK 
    END 
END
Run Code Online (Sandbox Code Playgroud)

Tib*_*szi 6

澄清@McNets 评论:该错误不是由 SQL Server 本身产生的。有人在表上创建了一个触发器,一个在 UPDATE 时触发的触发器。此触发器显然会检查行数,如果高于某个阈值,则会生成此错误并进行回滚。

您应该尝试找出触发事件的责任人并从那里着手。也许在这种特殊情况下对该触发规则进行例外处理是可以的?等等。