CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

急!急!急!触发器的问题

楼主littleqiang520(小强.NET)2005-05-12 14:40:32 在 MS-SQL Server / 应用实例 提问

我写了下面一段触发器代码,如下:  
  CREATE   TRIGGER   smsarticle   ON   tbl_RecieveSM   FOR   INSERT  
   
  AS  
   
  DECLARE   @mobile   nvarchar(20)  
  DECLARE   @cont       nvarchar(100)  
  DECLARE   @zhiling   nvarchar(4)  
   
  SET   @mobile   =   tbl_RecieveSM.mobile  
  SET   @cont   =   SUBSTRING(tbl_RecieveSM.content,5,LEN(tbl_RecieveSM.content)-4)  
  SET   @zhiling   =   UPPER(SUBSTRING(tbl_RecieveSM.content,1,4))  
   
  IF(@zhiling   ='DMZW')  
  BEGIN  
  INSERT   INTO   Article   (Article_Mobile,Article_Content,Article_Time)    
  VALUES   (@mobile,@cont,getDate())  
  END  
   
  IF(@zhiling   ='ZWPX')  
  BEGIN  
  UPDATE   Article   SET   Article_Vote   =   ArticleVote   +   1  
  FROM   inserted  
  WHERE   Article.Article_ID   =   RTRIM(SUBSTRING(insered.content,5,4))  
  and   UPPER(SUBSTRING(inserted.content,1,4))='ZWPX'  
  END  
   
  提示出错:  
  务器:   消息   107,级别   16,状态   3,过程   smsarticle,行   9  
  列前缀   'tbl_RecieveSM'   与查询中所用的表名或别名不匹配。  
  服务器:   消息   107,级别   16,状态   1,过程   smsarticle,行   10  
  列前缀   'tbl_RecieveSM'   与查询中所用的表名或别名不匹配。  
  服务器:   消息   107,级别   16,状态   1,过程   smsarticle,行   10  
  列前缀   'tbl_RecieveSM'   与查询中所用的表名或别名不匹配。  
  服务器:   消息   107,级别   16,状态   1,过程   smsarticle,行   11  
  列前缀   'tbl_RecieveSM'   与查询中所用的表名或别名不匹配。  
  服务器:   消息   107,级别   16,状态   1,过程   smsarticle,行   21  
  列前缀   'insered'   与查询中所用的表名或别名不匹配。  
   
  请各位高手帮小弟一把,怎么样写才能不出错!谢谢 问题点数:50、回复次数:6Top

1 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-12 14:50:49 得分 45

CREATE   TRIGGER   smsarticle   ON   tbl_RecieveSM   FOR   INSERT  
   
  AS  
   
  DECLARE   @mobile   nvarchar(20)  
  DECLARE   @cont       nvarchar(100)  
  DECLARE   @zhiling   nvarchar(4)  
   
  Select   @mobile   =   mobile,@cont   =   SUBSTRING(content,5,LEN(content)-4),@zhiling   =   UPPER(SUBSTRING(content,1,4))   from   tbl_RecieveSM  
   
  IF(@zhiling   ='DMZW')  
  BEGIN  
  INSERT   INTO   Article   (Article_Mobile,Article_Content,Article_Time)    
  VALUES   (@mobile,@cont,getDate())  
  END  
   
  IF(@zhiling   ='ZWPX')  
  BEGIN  
  UPDATE   Article   SET   Article_Vote   =   ArticleVote   +   1  
  FROM   inserted  
  WHERE   Article.Article_ID   =   RTRIM(SUBSTRING(insered.content,5,4))  
  and   UPPER(SUBSTRING(content,1,4))='ZWPX'  
  ENDTop

2 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-12 14:52:32 得分 0

但是还是有点问题,就你这种写法,如果每次只插入一条数据,你的触发器就有用。  
   
  同时插入多条的话,你的触发器就会失效。Top

3 楼littleqiang520(小强.NET)回复于 2005-05-12 14:54:57 得分 0

to   paoluo    
  那么写   2个触发器行不行?   我是同时插入多条,用线程的,但是每次保证一条插入以后,再插入一条。这样要不要紧?Top

4 楼zjcxc(邹建)回复于 2005-05-12 14:56:03 得分 5

每次保证一条插入以后,再插入一条  
   
  这样处理不会有问题了.Top

5 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-12 14:57:34 得分 0

回复人:   littleqiang520(小强.NET)   (   )   信誉:100     2005-05-12   14:54:00     得分:   0      
     
     
        to   paoluo    
  那么写   2个触发器行不行?   我是同时插入多条,用线程的,但是每次保证一条插入以后,再插入一条。这样要不要紧?  
       
     
  -------------------------------------  
   
  如果可以保证一条插入以后,再插入一条,这个触发器就可以。Top

6 楼heguosheng(何国胜)回复于 2005-05-12 22:07:02 得分 0

markTop

相关问题

  • 急!触发器
  • 触发器的问题,急!
  • 求触发器代码...急
  • 触发器求助。。。。急。。。。。
  • 急啊 ?触发器问题...
  • 触发器问题,急!
  • 关于触发器,急问!!
  • 关于触发器的问题,急急!!
  • 求救!急!关于触发器
  • SqlServer中如何激活触发器!!急

关键词

  • article
  • mobile
  • 查询
  • 服务器
  • 消息
  • recievesm
  • 触发器
  • zhiling
  • 插入
  • tbl

得分解答快速导航

  • 帖主:littleqiang520
  • paoluo
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo