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; 

このクエリを実行すると、エラーが発生します

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

4

1 に答える 1

0

コードが直接それを引き起こす可能性があるとは思いません。

おそらく、テーブルにバグのあるトリガーがあり、単一行のみが含まれ、複数行の挿入に失敗するとINSERT想定しています。INSERTED

于 2013-10-22T08:53:51.460 に答える