是递归触发的吧: 测试代码: --------------------if(OBJECT_ID('tproc') IS NOT NULL) drop proc tproc if(OBJECT_ID('tg') IS NOT NULL) drop trigger tg if(OBJECT_ID('tb_test') IS NOT NULL) drop table tb_test GO create table tb_test(name nvarchar(100)) GO CREATE proc tproc as insert into tb_test values (convert(nvarchar(50),GETDATE())) GO create trigger tg on tb_test for insert as exec tproc GO--允许递归触发 alter database test set RECURSIVE_TRIGGERS ONinsert into tb_test values ('he')执行结果: 消息 217,级别 16,状态 1,过程 tproc,第 3 行 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
select DATABASEPROPERTYEX('Test','IsRecursiveTriggersEnabled')
如果是1 则 是(但最大嵌套触发32层)
如果是0 则 不是
exec sp_configure 'nested triggers',0exec sp_dboption '库名','recursive triggers',false
测试代码:
--------------------if(OBJECT_ID('tproc') IS NOT NULL) drop proc tproc
if(OBJECT_ID('tg') IS NOT NULL) drop trigger tg
if(OBJECT_ID('tb_test') IS NOT NULL) drop table tb_test
GO
create table tb_test(name nvarchar(100))
GO
CREATE proc tproc
as
insert into tb_test values (convert(nvarchar(50),GETDATE()))
GO
create trigger tg on tb_test
for insert
as
exec tproc
GO--允许递归触发
alter database test
set RECURSIVE_TRIGGERS ONinsert into tb_test values ('he')执行结果:
消息 217,级别 16,状态 1,过程 tproc,第 3 行
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。