触发器的问题 请问SQL2000里有没有before可以用到触发器呢好像就只有after可以用吧?请各位指教啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 instead of,一般可用于视图更新 这话读着这么别扭呢?你说清楚问题了吗?触发器自己写,要after还是before看情况,但是肯定都可以实现。 回复3楼这还不够清楚吗就是在写触发器时无法使用before触发事件在机房和自己电脑都是这样你试过吗? http://blog.csdn.net/fredrickhu/archive/2009/10/21/4708906.aspx 我也不太明白你在触发之前想要干什么?如果是想要之前的数据,可以到deleted表中去取数据. 不是我就是想问下这个before能不能用比如说插入一条不是主键的数据如果有用before判断添加失败但问题是根本不能用before这条语句 如果是这个需求,只能先用语句判断,貌似触发器做不到.if exists(select 1 from tb where id = @id) --存在else --不存在 after好像可以和上面的语句一起连用的呀但就是不明白书上写着有before这条语句但上机不能实现 例如create trigger salebefore insert on teacherfor each rowas beginif(new.job='教授') and (new.sal<4000) thennew.sal=4000end ifend这条语句上机的时候就无法实现就是在before那一行出错 触发前可以用instead of但是sqlserver 的instead of跟oracle 的before有本质区别:比如 statement1 为引发触发器运行而本身要执行的操作,比如引发触发器执行的update, insert等statement2为触发器里要执行的操作(也就是触发器内部的逻辑)在before触发器里,执行完statement2后,要完成继续statement1的操作而 instead of触发器里,statemen2是替代了 statement1.看名字也可以想出有区别。 按日期统计数据 sql2000在2003群集基础上的安装问题 排序中不能使用distinct怎么办 数据库之间怎样建立关系,请各位大侠指教! 字符串转日期格式 sqlserver服务器cpu进程消耗资源过高,长时间占据97%以上,怎么处理? 如果主键的值溢出怎么办? sql 查询 第二列 字段 sqlserver中能够建立定时备份,但建立好的定时备份如何能够删除呢? 求救~left join的问题 endpoint nt authority anonymous logon' 登录失败 安装SQL server 2008失败,好像是权限问题!!!!
这话读着这么别扭呢?你说清楚问题了吗?触发器自己写,要after还是before看情况,但是肯定都可以实现。
这还不够清楚吗
就是在写触发器时无法使用before触发事件
在机房和自己电脑都是这样
你试过吗?
比如说插入一条不是主键的数据
如果有用before判断添加失败
但问题是根本不能用before这条语句
if exists(select 1 from tb where id = @id)
--存在
else
--不存在
但就是不明白
书上写着有before这条语句但上机不能实现
create trigger sale
before insert on teacher
for each row
as begin
if(new.job='教授') and (new.sal<4000) then
new.sal=4000
end if
end
这条语句上机的时候就无法实现
就是在before那一行出错
但是sqlserver 的instead of跟oracle 的before有本质区别:
比如 statement1 为引发触发器运行而本身要执行的操作,比如引发触发器执行的update, insert等
statement2为触发器里要执行的操作(也就是触发器内部的逻辑)
在before触发器里,执行完statement2后,要完成继续statement1的操作
而 instead of触发器里,statemen2是替代了 statement1.
看名字也可以想出有区别。