我想更新数据库中的一张表。但我收到错误并且不知道为什么。
UPDATE TbSoore
SET MakiMadani = N'مکی'
WHERE MakiMadani = N'مکه'
执行时出现此错误:
消息 512,级别 16,状态 1,过程 TrigUpdateDateSoore,第 9 行 [批量开始第 0 行] 子查询返回超过 1 个值。当子查询跟在 =、!=、<, <= , >、>= 后面或子查询用作表达式时,这是不允许的。 该声明已终止。
我有什么错?
新编辑。 这是触发器:
USE [NewYekAye]
GO
/****** Object: Trigger [dbo].[TrigUpdateDateSoore] Script Date: 15/02/1403 03:19:09 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Trigger [dbo].[TrigUpdateDateSoore] On [dbo].[TbSoore]
After Update,Insert
As Begin
Update TbSoore Set ModifyDateTime = GETDATE()
Where TbSoore.IdSoore= (Select d.IdSoore from inserted d)
End
我找到了。
就像 Sergey 所说(在评论中),问题是触发的,当我用
TbSoore.IdSoore in (Select d.IdSoore from inserted d)
替换 TbSoore.IdSoore = (Select d.IdSoore from inserted d)
时,查询工作成功。
谢谢你谢尔盖。