递归触发器引起的异常,请教!!
我的SQL文件:(如下)
USE master
go
create database DEPTLISTS
ON
(NAME=DEPTLISTS_DAT,
FILENAME='F:\My Files\vb\P237\DEPTLISTS_DAT.MDF')
LOG ON
(NAME=DEPTLISTS_LOG,
FILENAME='F:\My Files\vb\P237\DEPTLISTS_LOG.LDF')
GO
use DEPTLISTS
go
CREATE TABLE DEPTL
(lngDeptID INT,lngFatherID INT,strDeptName char(10))
go
begin tran
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(1,0,'北京部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(2,0,'上海部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(3,0,'广州部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(4,1,'海淀分部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(5,1,'朝阳分部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(6,1,'西城分部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(7,2,'静安分部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(8,2,'黄埔分部')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(9,4,'知春路部门')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(10,4,'北外分部门')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(11,3,'a')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(12,11,'b')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(13,12,'c')
insert into DEPTL(lngDeptID,lngFatherID,strDeptName) values(14,13,'d')
go
commit tran
select * from DEPTL
go
CREATE TRIGGER mydel ON [dbo].[DEPTL]
FOR DELETE
AS
delete from deptl where lngFatherid=(select lngdeptid from deleted)
go
delete from deptl where strDeptName='a'
go
我创建了一个数据库,添加了一些数据。我想实现递归的删除。比如删除strDeptName='a'的一条数据的时候,由触发器触发删除其它数据中lngFatherid与所删除一条数据中lngDeptid 相等的一条数据。在数据库我用了递归触发器。希望级连删除strDeptName='b' ,strDeptName='c' ,strDeptName='d'这几条数据。
结果报错:
服务器: 消息 217,级别 16,状态 1,过程 mydel,行 6
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
为什么会报这个错呢?请教,多谢!