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)
澄清@McNets 评论:该错误不是由 SQL Server 本身产生的。有人在表上创建了一个触发器,一个在 UPDATE 时触发的触发器。此触发器显然会检查行数,如果高于某个阈值,则会生成此错误并进行回滚。
您应该尝试找出触发事件的责任人并从那里着手。也许在这种特殊情况下对该触发规则进行例外处理是可以的?等等。
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |