admin

是什么导致“ ubquery返回的值超过1个”错误?

sql

我不知道为什么我会收到此错误:-

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

我正在尝试运行此查询:

ALTER TABLE Test1 NOCHECK CONSTRAINT ALL
ALTER TABLE Test2 NOCHECK CONSTRAINT ALL


UPDATE Test1 
SET ID= '05f6c6b4-63ff-45b2-a5e2-920d5dce3e45' 
WHERE ID = '05e6c6b4-63ff-45b2-a5e2-920d5dce3e45'; 
UPDATE Test2 
SET ID = '05f6c6b4-63ff-45b2-a5e2-920d5dce3e45' ,
SpecID = NULL ,
RefLastName = 'Dummy' ,
RefFirstName = 'First Name' ,
RefMiddleName = NULL ,
RefPhone1 = '111444444' ,
RefPhone2 = '2121222' ,
RefFax = '222222' ,
RefEmail = 'xxxxxxx@hotmail.ca' 
WHERE 
RefID = '05e6c6b4-63ff-45b2-a5e2-920d5dce3e45'

ALTER TABLE Test1 WITH CHECK CHECK CONSTRAINT ALL
ALTER TABLE Test2 WITH CHECK CHECK CONSTRAINT ALL

阅读 213

收藏
2021-07-01

共1个答案

admin

您要更新的表之一是否具有触发器?如果是这样,则可能包含一个带有多个值的子查询。

我个人认为在执行插入或更新操作时关闭检查约束是非常糟糕的做法。它们在那里是有原因的,如果您的数据不符合这些约束,则不应按原样插入,否则需要针对新条件调整约束。如果将来更新记录,也会造成问题。

2021-07-01