刚开始仿照前辈的触发器,写了一个这样的触发器:

代码

--更新合同的 【提交时间】
declare@IDint
declare@useridint
declare@statusnchar(40)

select@ID= (select acon_acontractid from inserted)
select@userid= (select i.acon_userid from inserted i,deleted d where i.ACon_AContractID=d.ACon_AContractID and (i.acon_userid<>d.acon_userid or i.acon_userid isnotnulland d.acon_userid isnull))
select@status= (select i.acon_status from inserted i,deleted d where i.ACon_AContractID=d.ACon_AContractID and (i.acon_status<>d.acon_status or i.acon_status isnotnulland d.acon_status isnull))

--当插入的数据的是当前处理人或者是状态时
if(@useridisnotnullor@statusisnotnull)
begin
update acontract set acon_submittime =getdate() where acon_acontractid=@ID
end

这样写触发器。有个问题,update数据的时候,如果是多条记录一起更新的话,那么   select acon_acontractid from inserted 返回的是一个数据集。

就会报错,错误如标题。

修正:

判断的时候尽量采用  if exists 或者 if upate() 之类的语法。

在执行操作的时候就使用  【in】操作符,就id可以 等于一个结果集了。

修改如下:

代码

ifupdate (acon_userid)
begin
update acontract set acon_submittime =getdate() where acon_acontractid in (select acon_acontractid from inserted)
end

ifupdate (acon_status)
begin
update acontract set acon_submittime =getdate() where acon_acontractid in (select acon_acontractid from inserted)
end

测试ok。

转载于:https://www.cnblogs.com/novus/archive/2010/02/08/1666060.html

子查询返回的值不止一个。当子查询跟随在 =、!=、、=、、= 之后,或子查询用作表达式时,这种情况是不允许的。...相关推荐

  1. 思迅软件PDA 3900 BUG 代码:05FF 子查询返回的值不止一个。当子查询跟随在 之后,或子查询用作表达式时

    主程序:思迅商锐9.5 PDA 3900 服务端版本 1.1 事件类型:PDA查询报表 查询商品档案时 返回上图错误 代码:05FF 子查询返回的值不止一个.当子查询跟随在 =.!=.<.< ...

  2. mysql 查询 更新属性值_MySQL-在一个查询中更新具有不同值的多行

    我试图了解如何用不同的值更新多行,但我不明白.解决方案无处不在,但对我来说似乎很难理解. 例如,将三个更新更新为1个查询: UPDATE table_users SET cod_user = '622 ...

  3. oracle单行子查询返回多个行 order by,单行子查询返回多个行

    子查询: 用子查询能解决的问题 假想你想要写一个查询来找出挣钱比陆涛的薪水还多的人.为了解决这个问题,你需要两个查询:一 个找出陆涛的收入,第二个查询找出收入高于陆涛的人. 你可以用组合两个查询的方法 ...

  4. JdbcTemplate(操作数据库-查询返回值)

    目录 JdbcTemplate(操作数据库-查询返回值) 1.创建数据库 2.创建实体类 3.创建dao层 4.创建service层 5.创建测试类: 6.xml配置 7.测试结果: 8.结构示意: ...

  5. sql嵌套查询返回多个字段_list4 SQL复杂查询

    子查询返回结果形式不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般为多行多列) 子查询在主查询中出现的位置不同: selec ...

  6. python字典返回键值对列表_返回列表Python dict dictionaries Python 数据结构——字典 返回列表...

    最近研究返回列表,稍微总结一下,以后继续补充: 字典是比列表更先进的一种内置数据结构. "字典"就像现实中的字典一样,每一个单词对应好几个意思.在Python面里就是每一个键对应一 ...

  7. vue 子组件调用父组件方法、值(父传子);父组件调用子组件方法、值(子传父)。

    一.子组件调用父组件方法(父传子-方法) 场景:子组件是弹出框组件.当点击确定时,将新增的值增加到父组件的列表.就要调用父组件的getLIst()方法. 代码: //父组件 利用@子组件方法名=&qu ...

  8. 单行子查询返回多个行_sql多表查询练习,习题总结

    组函数(聚合函数):组函数操作行集,给出每组的结果.组函数不象单行函数,组函数对行的集合进行操作,对每组给出一个结果.这些集合可能是整个表或者是表分成的组. 组函数和单行函数的区别: 单行函数对查询到 ...

  9. c语言子查询返回子菜单,T-SQL基础(三)之子查询与表表达式

    子查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询.嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用. 根据是否依赖外部查询,可将子查询分为自包含子查询和相关子查询.自包含 ...

最新文章

  1. 金山发布《2006年度信息安全报告》
  2. 从 Dropdown 的 React 实现中学习到的
  3. android p wifi一直在扫描_Android再次解读萤石云视频
  4. 【虚拟化】支持IDE/SATA/SCSI
  5. Numpy Scalars(标量)
  6. 务必了解的跨境电商ERP独立部署!
  7. Go 能拯救已经失败的可视化编程?
  8. 算法导论第三版第六章 答案
  9. IEC 60335标准介绍
  10. Charle分析实战
  11. 马云创业过程中的10次失败(转)
  12. 《零秒工作》的一些总结
  13. lilo是什么意思_Lilo_英文名Lilo是什么意思
  14. 如何把小米和计算机共享,小米随身Wifi如何让手机共享电脑文件 小米wifi共享电脑文件教程...
  15. 自从用了这款黑科技工具,妈妈再也不用担心我的c盘文件爆满了
  16. Nagios汉化页面
  17. Mixly 数码管时钟实验
  18. 数据分析师八大能力之一:收集信息的能力
  19. shadow acne(阴影失真)和peter panning(阴影悬浮)
  20. 4款一眼万年的精品软件,免费又好用,可惜很多人不知道

热门文章

  1. 作业帮电脑版在线使用_互助作业帮PC版-互助作业帮电脑版下载 v4.5.8
  2. hough变换检测圆周_hough变换原理以及实现(转载)
  3. python读取fiddler_python3 使用Fiddler捕获的Raw信息带cookie使用GET或POST获取
  4. dockerfile的详细介绍
  5. sklearn中的正则化
  6. 【Nutch2.2.1基础教程之2.1】集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行【单机环境】
  7. 思维模型篇:四大战略分析工具
  8. python之Queue
  9. HTTP协议基础知识总结
  10. 聊聊高并发(二十)解析java.util.concurrent各个组件(二) 12个原子变量相关类