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

求高人帮忙看看这段代码错在哪里

jack7813 发布于 2012-08-17 11:02, 448 次点击
CREATE TRIGGER [toupdate]
  ON db.[tf_mo]
  AFTER INSERT
AS  
BEGIN
  SET NOCOUNT ON;
  declare @prd_no char(15) ,@spc char(15)
if exists(select 1 from inserted)
begin
  set @prd_no=(select prd_no from inserted)
  set @spc = (select spc from prdt where prd_no=@prd_no)
  update tf_mo set rem=@spc where prd_no=@prd_no
end


提示是end附近有错误。麻烦各位帮忙看看,谢谢
3 回复
#2
netlin2012-08-17 17:12
CREATE TRIGGER [toupdate]
  ON dbo.[tf_mo]
  AFTER INSERT
AS  
BEGIN
  SET NOCOUNT ON;
  declare @prd_no char(15) ,@spc char(15)
if exists(select 1 from inserted)
begin
  set @prd_no=(select prd_no from inserted)
  set @spc = (select spc from prdt where prd_no=@prd_no)
  update tf_mo set rem=@spc where prd_no=@prd_no
end
end
#3
chenbj0072012-08-24 16:14
我还是个菜鸟,看这个命令有点费劲,研究了半天才有点头绪,我说下我看的结果,各位看看我说的对不对
CREATE TRIGGER [toupdate] --创建触发器
  ON dbo.[tf_mo]          --触发器对dbo.[tf_mo]表作用
  AFTER INSERT           --这个不太明白,应该还有updata,delete什么的,不明白区别是什么
AS  
BEGIN
  SET NOCOUNT ON;        --这个的意思应该是只不返回数据吧,节省资源的
  declare @prd_no char(15) ,@spc char(15)   --创建2个变量
if exists(select 1 from inserted)           --如果括号内的查询有结果的话就执行下面的命令
begin
  set @prd_no=(select prd_no from inserted)   --变量@prd_no赋值成查询的结果
  set @spc = (select spc from prdt where prd_no=@prd_no)  --效果同上
  update tf_mo set rem=@spc where prd_no=@prd_no  --更新数据
end
end
不知道理解的对不对
#4
netlin2012-08-25 06:22
解释得很好!
“ AFTER INSERT           --这个不太明白,应该还有updata,delete什么的,不明白区别是什么”
指触发的事件
1