| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 398 人关注过本帖
标题:创建行级触发器的的问题
收藏  订阅  推荐  打印
我是一匹好马
Rank: 2
等级:注册会员
帖子:40
积分:506
注册:2006-11-14
创建行级触发器的的问题

创建触发器的语句如下:
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'。此处只允许使用常量、表达式或变量。不允许使用列名。

请问如何解决呢?
2008-8-5 09:24
bb3852
Rank: 2
等级:注册会员
帖子:82
积分:1040
注册:2008-4-21

看错误应该这样修改

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

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

[ 本帖最后由 bb3852 于 2008-8-5 09:53 编辑 ]
2008-8-5 09:49
我是一匹好马
Rank: 2
等级:注册会员
帖子:40
积分:506
注册:2006-11-14

不是啊,加select不行的,顺便说一下我是在sql server2000 中创建的
2008-8-5 09:55
bb3852
Rank: 2
等级:注册会员
帖子:82
积分:1040
注册:2008-4-21

create trigger Update_OnHand
on Goods after insert
as begin
    insert into OnHand(GoodsId,Qty)
    select GoodsId,0
    from inserted
   end
2008-8-5 10:03
bb3852
Rank: 2
等级:注册会员
帖子:82
积分:1040
注册:2008-4-21

出现什么错误啊
2008-8-5 10:03
共有 397 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.072647 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved