【问题标题】:Subquery returned more than 1 value. (Insert within a while loop)子查询返回超过 1 个值。 (在while循环中插入)
【发布时间】:2017-01-20 17:35:30
【问题描述】:
DECLARE @int int
DECLARE @saveamount int
DECLARE @savedate datetime
SET @int=1
SET @saveamount=400
SET @savedate= '20160101 13:00:00.00'
WHILE @int<=357
BEGIN
INSERT INTO watersave (reservoirid, amount, savedate)
             VALUES   (1,@saveamount,@savedate)


SET @int=@int+1
SET @saveamount=@saveamount+(SELECT ROUND((6 - 12 * RAND()), 0))
SET @savedate=@savedate+1
END

出于测试目的尝试插入,但与子查询堆叠在第 9 行返回超过 1 个值错误。

有什么想法吗? 问候

【问题讨论】:

  • 是不是这个查询返回了多个值?选择轮((6 - 12 * RAND()),0)
  • 正如 seagulledge 所指出的,问题是由于触发器。我需要更新触发器中的子查询。

标签: sql sql-server sql-server-2012 sql-server-2014 sql-server-2016


【解决方案1】:

由于您的 SQL 中似乎没有任何子查询,请检查 [watersave] 表上是否有任何触发器。

参考: SQL Server Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >=

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多