我不知道为什么我会收到此错误:-
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
您要更新的表之一是否具有触发器?如果是这样,则可能包含一个带有多个值的子查询。
我个人认为在执行插入或更新操作时关闭检查约束是非常糟糕的做法。它们在那里是有原因的,如果您的数据不符合这些约束,则不应按原样插入,否则需要针对新条件调整约束。如果将来更新记录,也会造成问题。