SQL server触发器在触发前的问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:00:20
在SQLserver触发器里面要实现实现像ORACLE的before功能一样怎么办?比如:
create trigger tri_deleteLevel on users
for delete as
declare @v_usid int
select @v_usid=usid from deleted
delete level_assign where usid=@v_usid
我想在删除users表内容前就把level_assign表内容删掉,怎么解决?

create trigger tri_deleteLevel on users
instead of delete
as
declare @v_usid int
select @v_usid=usid from deleted
delete level_assign where usid=@v_usid
/*
上面触发器在删除users表内容前引发,但相应的操作并不被执行(就是说users表的内容不会删除),而运行的仅是触发器SQL 语句本身,deleted和inserted都有响应*/

create trigger tri_deleteLevel on users
for BEFORE delete as
declare @v_usid int
select @v_usid=usid from deleted
delete level_assign where usid=@v_usid

这样试试