sqlserver 表 无法更新和删除 子查询返回的值不止一个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 表 无法更新和删除 子查询返回的值不止一个相关的知识,希望对你有一定的参考价值。

这是语句
delete from khppzd
where KHPPZD_XTDWBH is null
and KHPPZD_KHMC not like '%非协议%'
and KHPPZD_JS in('1','2')
这是错误提示
消息 512,级别 16,状态 1,过程 khppzd_update,第 19 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
无法删除和更新,select正常,请大神指点

参考技术A 你确定是那个delete的问题吗??
这个delete语句和错误提示的khppzd_update有啥关系?又没有子查询...

应该是其它地方的问题,再检查一下“过程 khppzd_update,第 19 行子查询返回的值不止一个”

祝你成功!

sqlserver根据子查询更新语句

语法结构:

update 主表别名 set 主表别名.name=(select 子表别名.name from 子表  子表别名 where 主表别名.id=子表别名.id) from 主表 主表别名

例:

update t set t.name=(select b.name from users b where t.userid=b.userid) from teacher t

以上是关于sqlserver 表 无法更新和删除 子查询返回的值不止一个的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver根据子查询更新语句

sql server触发器 子查询返回值不止一个 如何解决?

使用子查询更新语句

SQLServer —— EXISTS子查询

sqlserver的查询语句和插入更新语句怎么用

具有相关子查询的更新查询不能通过表别名