/*判断表中是否有名为“delete_employee”的触发器*/
if EXISTS (SELECT name
FROM sysobjects
WHERE name = 'delete_employee'
AND type = 'TR')
/*如果已经存在则删除*/
drop trigger delete_employee
go
create trigger delete_employee
on 员工表
after delete as
declare @rowcount int
select @rowcount = @@rowcount
if @rowcount>1
begin
rollback transaction
print('当前删除的记录条数大于一条,一次只允许删除一条')
end
if @rowcount=1
begin
declare @所属部门 varchar(50)
select @所属部门 = 所属部门 from deleted
delete from 员工表 where 所属部门 = @所属部门
end
go
db-使用递归触发器实现每次删除一条记录
本文介绍了一个SQL触发器的实现,用于在员工表上限制删除操作,确保一次只能删除一条记录,并在删除时检查并可能级联删除所属部门。触发器首先检查是否存在名为'delete_employee'的触发器,如果存在则删除它,然后创建新的触发器。
摘要由CSDN通过智能技术生成