2013-10-22 44 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