2013-10-22 46 views
0

下面是执行这个查询我收到提示收到错误:子查询返回多个值

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

+1

只是确保(SELECT ISNULL(MAX(PRE_CD),0)FROM TBL_MAIN)不会返回多于一行 –

+0

它只返回1行 – Rohaan

+0

,因为上述错误仅仅表示您尝试将多个值分配给某些查询或变量,只接受一行(值) –

回答

0

我没有看到代码我的SQL查询

BEGIN TRAN 

DECLARE @PRE_CD INT = (SELECT ISNULL(MAX(PRE_CD), 0) FROM TBL_MAIN) 

INSERT INTO TBL_MAIN 
      (PRE_CD, 
      PRE_DESC, 
      PRE_REF_CD) 
SELECT ROW_NUMBER() OVER (ORDER BY PRESENTATION) + @PRE_CD, 
     PRESENTATION, 
     3 
FROM (SELECT DISTINCT PRESENTATION 
     FROM Temp_Data 
     WHERE PRESENTATION NOT IN (SELECT PRE_DESC 
            FROM TBL_MAIN)) T 

COMMIT; 

直接导致它。

也许你有一个错误INSERT触发器的表,假设INSERTED将只包含一个单行,并失败的多行插入。

+0

你是对的。他们是'TBL_MAIN'上的触发器 – Rohaan