CREATE TRIGGER tr1 ON sc FOR INSERT,UPDATE,DELETE AFTER INSERT,UPDATE 这个sql语句为什么老提示:

消息102,级别15,状态1,过程tr1,第1行'AFTER'附近有语法错误。... 消息 102,级别 15,状态 1,过程 tr1,第 1 行
'AFTER' 附近有语法错误。
展开
 我来答
jiangjie_yahoo
2012-07-10 · TA获得超过151个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:52.3万
展开全部
对,FOR和AFTER不能同时用。
对于表来说,for触发器等价于AFTER触发器。
晕逍遥
2012-07-10 · TA获得超过457个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:277万
展开全部
CREATE TRIGGER tr1
AFTER INSERT,UPDATE
ON sc FOR INSERT,UPDATE,DELETE
你这样试一下看看有没有错误
追问
还是有错误,我把FOR INSERT,UPDATE,DELETE注释起来就不出错了,是不是FOR和AFTER不能同时用??
追答
我刚才没太仔细看,就看了下语法,FOR和after/before是可以一起用的,但是你这个语句的意思应该是这个触发器在进行了插入更改删除后触发的,应该这样写
CREATE TRIGGER tr1
AFTER INSERT,UPDATE,DELETE
ON sc FOR EACH ROW
像你说的,注释起来也没有问题,但是少了for each row的话,就是本触发器针对该表执行一次,加了 for each row 是针对表中的每一行进行触发执行,根据需求来决定吧。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翟毅君
2012-07-10 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:46.1万
展开全部
在SQL2000中没有after ,它的for 和 after 一样
create trigger tr1
on sc
for insert ,update,delete
as begin
declare @newsno=sno
select @newsno=sno from inserted
update sno
set .......where sno=@newsno
end
go
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式