2016-04-29 10 views
0

私のストアドプロシージャコード:!サブクエリーが2つ以上の値を返しました。サブクエリは、次の時にこれが許可されていない=、=、<, <= , >、> =

DECLARE @Form NVARCHAR(36) 
SET @Form = NEWID() 

SELECT * 
INTO #s 
FROM [2290_Form] 
WHERE PK_2290F_key = @inputkey 

INSERT INTO [2290_Form] 
VALUES (@Form, 
    (SELECT #s.FK_C_B_key FROM #s), 
    (SELECT #s.is_vin_correction FROM #s), 
    (SELECT #s.is_amendment FROM #s), 
    (SELECT #s.amendment_category FROM #s), 
    (SELECT #s.is_final_return FROM #s), 
    (SELECT #s.first_used_month FROM #s), 
    (SELECT #s.tax_year FROM #s), 
    (SELECT #s.tax_amt FROM #s), 
    (SELECT #s.additional_amt FROM #s), 
    (SELECT #s.credit_amt FROM #s), 
    (SELECT #s.payment_mode FROM #s), 
    (SELECT #s.consent_tag FROM #s), 
    (SELECT #s.status FROM #s), GETDATE(), NULL) 

INSERT INTO [2290_Vehicles] 
VALUES (NEWID(), @Form, 
    (SELECT vin FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT category FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT is_logging FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT is_agricultural FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT is_mileage_exceed FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT weight_current FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT weight_old FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT credit_reason FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT buyer FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT effective_date FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), 
    (SELECT tax_amt FROM [2290_Vehicles] WHERE FK_2290_F_key = @inputkey), GETDATE(), NULL) 

SET @Formkey = @Form 

私は取得していますエラーは次のとおりです。

サブクエリが複数の値を返しました。 サブクエリが、=、!<、< =、>、> =、またはサブクエリが式 として使用されている場合は、これは許可されません。 1行以上の2290_Vehiclesリターンにごサブクエリの

+4

サブクエリーが多すぎる行を返します。したがって、エラーメッセージ –

+0

挿入後にすべて選択するとエラーが発生する可能性があります – TheGameiswar

+0

この時点で複数の行が返されると、このタイプのエラーが変数に設定されている間に発生します。 –

答えて

0
DECLARE @Form NVARCHAR(36) 
SET @Form = NEWID() 

INSERT INTO dbo.[2290_Form] 
SELECT @Form, FK_C_B_key, is_vin_correction, ..., GETDATE(), NULL 
FROM dbo.[2290_Form] 
WHERE PK_2290F_key = @inputkey 

INSERT INTO dbo.[2290_Vehicles] 
SELECT NEWID(), @Form, vin, category, ..., tax_amt, GETDATE(), NULL 
FROM dbo.[2290_Vehicles] 
WHERE FK_2290_F_key = @inputkey 
0

一つ。それが何であるか調べるには、次のようにしてください:

select FK_2290_F_key 
from [2290_Vehicles] 
group by FK_2290_F_key 
having count(FK_2290_F_key) > 1 
関連する問題

 関連する問題