【发布时间】:2015-10-24 04:50:10
【问题描述】:
我需要更新超过 1000 条记录。这些值在另一个表中。
我试过这个查询:
Update tblEnrollment
SET TrOOPCurrentYrBalanceAmt = tr.TrOOPCurrentYrBalanceAmt
from tblTrOOPbalance tr
join tblMember mem on tr.MedicareNumber = mem.MANumber
join tblEnrollment enr on mem.MemberID = enr.MemberID
where enr.EnrollmentID IN ('16823', '16828')
但我得到一个错误:
消息 512,级别 16,状态 1,过程 tblEnrollment_UpdateTrigger,第 9 行
子查询返回超过 1 个值。
当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
我想我不能用查询更新超过 1 个。如何更新多条记录?
谢谢,
因为tblenrollment表有一个触发器,防止更新多条记录,我只好用LOOP来一条一条地更新一条记录。 任何人都可以帮助如何编写 LOOP 查询吗?
【问题讨论】:
-
程序 tblEnrollment_UpdateTrigger 中还有其他代码吗?
-
您的
update语句没有子查询,因此不会产生该错误。 -
请发布您的所有 SQL 查询代码。以便我们为您提供准确的答案。正如@GordonLinoff 所说,上述查询应该可以正常工作,因为它没有任何子查询来返回数据。
-
我不知道 tblEnrollment_UpdateTrigger 导致了错误。我在数据库中搜索它,发现它是一个触发器..我什至不知道触发器是什么......无论如何我要再挖掘一些,看看我能找到什么,我会更新。感谢您的帮助!
-
编写触发器的经典错误。
标签: sql sql-server sql-update