数据库结构问题?

yinzs 2008-10-11 12:00:58



DELETE FROM TABLE_TEST WHERE PRODUCTID='TEST'

服务器: 消息 512,级别 16,状态 1,过程 UserProcessChange,行 5
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinzs 2008-10-12
  • 打赏
  • 举报
回复
确实是触发器问题。多谢各位。
CN_SQL 2008-10-11
  • 打赏
  • 举报
回复
首先,如果是你给出的这个语句,即使出错,也不会提示这个错误,这种错误一般是发生在如下这样的情况:

use tempdb
go

declare @t table
(
id int
)

insert @t select 1
union all select 2

select
*
from @t
where 1 = ( --这里外面是1个值,但子查询里面的ID是返回的一个记录集,即多个值,因此就会提示错误
select id
from @t)



但你却遇到了这个错误,因此表上可能存在一个触发器,错误也是由于触发器里的代码内容造成:
你可以这样查看触发器的内容:


exec sp_helptext 'UserProcessChange' --错误提示的是第5行

yinzs 2008-10-11
  • 打赏
  • 举报
回复
初学,触发器还没搞懂的说……,happyflystone能不能说一下可能是什么原因?
yinzs 2008-10-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyflystone 的回复:]
这个表上有触发器 ?
[/Quote]
……晕 我不太清楚。跟触发器有关么?
-狙击手- 2008-10-11
  • 打赏
  • 举报
回复
这个表上有触发器 ?
中国风 2008-10-11
  • 打赏
  • 举报
回复
---UserProcessChange

这个是存储过程是触发器里调用?

--查看引用的触发器


select * from sysobjects where parent_obj=object_id('t2') and xtype='tr'
  • 打赏
  • 举报
回复
句子本身没有错误,就像上面说的表中有触发器,
过程 UserProcessChange,行 5
eping2002 2008-10-11
  • 打赏
  • 举报
回复
应该是触发器的原因

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧