注册 登录
编程论坛 SQL Server论坛

创建行级触发器的的问题

我是一匹好马 发布于 2008-08-05 09:24, 1815 次点击
创建触发器的语句如下:
create trigger Update_OnHand
after insert on Goods
for Each Row
as begin
    insert into OnHand(GoodsId,Qty) values(new.GoodsId,0)
   end

报错如下:
服务器: 消息 170,级别 15,状态 1,过程 Update_OnHand,行 2
第 2 行: 'after' 附近有语法错误。
服务器: 消息 128,级别 15,状态 1,过程 Update_OnHand,行 5
在此上下文中不允许使用 'GoodsId'。此处只允许使用常量、表达式或变量。不允许使用列名。

请问如何解决呢?
4 回复
#2
bb38522008-08-05 09:49
看错误应该这样修改

1 after insert应该在后面
create trigger Update_OnHand
 on Goods after insert

2
values(new.GoodsId,0)
 改为
select new.GoodsId,0

[[it] 本帖最后由 bb3852 于 2008-8-5 09:53 编辑 [/it]]
#3
我是一匹好马2008-08-05 09:55
不是啊,加select不行的,顺便说一下我是在sql server2000 中创建的
#4
bb38522008-08-05 10:03
create trigger Update_OnHand
 on Goods after insert
as begin
    insert into OnHand(GoodsId,Qty)
    select GoodsId,0
    from inserted
   end
#5
bb38522008-08-05 10:03
出现什么错误啊
1