当前位置:  开发笔记 > 数据库 > 正文

SQL Server 2000:"子查询在update语句中返回了多个值"

如何解决《SQLServer2000:"子查询在update语句中返回了多个值"》经验,为你挑选了1个好方法。

我正在尝试进行简单的更新.我做过好几千次这样的事.

update articles
set department = 60
where type = 'Top Story'

今天我收到一个奇怪的错误.

描述错误:无法检索执行计划:子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

警告:---> W(1):声明已终止.<---

1559条记录受到影响

update语句中没有子查询.这是怎么回事?



1> technophile..:

很可能表上有一个触发器,错误发生在触发器中,而不是在实际的SQL语句中.

我进一步打赌,触发器假定插入或删除特殊表只会有一行(实际上不是大规模更新的情况,就像你正在执行的那样),导致问题.


好抓!该表有一个包含此子句的更新触发器:"其中articleID =(从INSERTED中选择articleID)"我将"="更改为"in",它按预期工作.
推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有