CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

大家看看,我这个触发器是哪里的错误??

楼主zzgsky(紫雨)2002-02-25 09:43:12 在 MS-SQL Server / 基础类 提问

CREATE   TRIGGER   question_update_triger   ON   [dbo].[online_question]    
  FOR     UPDATE  
  AS  
          declare   @answer   int  
          set   @answer=(select   answer_number   from   updated)  
          if(@answer!=0)  
              update   online_question   set   answer="y"  
          else  
              update   online_question   set   answer="n"  
   
  错误信息:  
  System.Data.SqlClient.SqlException:   对象名   'updated'   无效。   at   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior   cmdBehavior,   RunBehavior   runBehavior,   Boolean   returnStream)   at   System.Data.SqlClient.SqlCommand.ExecuteNonQuery()   at   ASP.table_aspx.enter_click(Object   sender,   EventArgs   e)   in   c:\inetpub\wwwroot\kjzj\online\table.aspx:line   46 问题点数:20、回复次数:8Top

1 楼SE1()回复于 2002-02-25 09:47:12 得分 0

SQL   Server吗?和Inseted、Deleted不同,对于Update触发子而言,并没有一个Updated临时表存在。Top

2 楼xzou(亡狼补齿)回复于 2002-02-25 09:49:00 得分 0

没有updated,只有inserted和deleted,去inserted找你需要的东西吧  
  Top

3 楼zzgsky(紫雨)回复于 2002-02-25 09:52:05 得分 0

这样呀?我试试看!!Top

4 楼zzgsky(紫雨)回复于 2002-02-25 09:58:07 得分 0

那我如何得到我修改的这一条记录的某一列值呢?Top

5 楼SE1()回复于 2002-02-25 10:01:50 得分 0

在inserted中查询好了.Top

6 楼zzgsky(紫雨)回复于 2002-02-25 10:09:28 得分 0

我并没有insert,只是当我update一条记录的某一列值(example:name)时,同时对这条记录的另一列值进行修改Top

7 楼Haiwer(海阔天空)回复于 2002-02-25 10:11:18 得分 10

CREATE   TRIGGER   question_update_triger   ON   [dbo].[online_question]    
  FOR   UPDATE  
  AS  
   
          update   online_question    
                set   set   answer="y"  
          from   online_question   b,inserted   i,deleted   d  
          where   b.key=i.key  
        and   b.key=d.key  
        and   i.answer_number<>0  
   
          update   online_question    
                set   set   answer="n"  
          from   online_question   b,inserted   i,deleted   d  
          where   b.key=i.key  
        and   b.key=d.key  
        and   i.answer_number=0  
   
  go  
   
  Top

8 楼SE1()回复于 2002-02-25 10:14:56 得分 10

根据你的题目,就是要知道更新的内容中answer_number字段是否为零?那么,应该这样:  
  select   @answer=sum(answer_number)   from   inserted  
  if(@answer!=0)  
  update   online_question   set   answer="y"  
  else  
  update   online_question   set   answer="n"  
   
   
  Top

相关问题

  • 大家看看,我这个触发器是哪里的错误??
  • 这个触发器有语法错误,求解方案!
  • 触发器错误! ORACLE8.1.5!
  • 触发器错误提示
  • 请帮忙看这个触发器的错误,第一次写,错误多多
  • 这个触发器那儿有错,编译时提示有编译错误.
  • 请教:为什么创建的这个触发器老是说编译错误
  • 高手帮帮忙,这个简单的触发器为什么会有错误
  • 一个触发器的语法错误
  • 请教一个触发器错误?

关键词

  • answer
  • question
  • update
  • online
  • 记录
  • 值
  • sqlclient
  • key
  • inserted
  • deleted

得分解答快速导航

  • 帖主:zzgsky
  • Haiwer
  • SE1

相关链接

  • SQL Server类图书

广告也精彩

反馈

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