私は以下のような挿入ステートメントを持っています。ストアドプロシージャをデバッグし、コードをステップ実行してコードが実行されていることを確認できますが、おかしなことが起こります。
データベースに保存されると予想される値は保存されません。代わりに、テーブルに行が作成され、RecordCreatedField
が正しく作成されます。主キーも含まれていますが、挿入されると予想される実際の列は含まれていません。nvarchar/varchar
日付列とIDを除くすべての列はですが、これらの列のみが入力されます。ただし、次の@PRCUPC、@ PRCEAN、@ PRCGTIN、@PRCatalogNumberはどういうわけか省略されています。
EXEC spinsertprodcode
@pid out,
@ProdID,
@UPC,
@EAN,
@TIN,
@CNumber,
0,
0,
1,
@staid,
@counter out
INSERT INTO dbo.ProdCodes
(PRProductID
,PRCUPC
,PRCEAN
,PRCGTIN
,PRCatalogNumber
,PRIsReplacement
,PRIsReplaced
,PRCRecordCreatedDate
,PRCIsActive
,PRStatusFlag)
OUTPUT INSERTED.PRCID INTO @opID
VALUES
(@PRProductID,
@PRCUPC,
@PRCEAN,
@PRCGTIN,
@PRCatalogNumber,
@PRIsReplacement ,
@PRIsReplaced,
GETDATE(),
@PRCIsActive,
@PRStatusFlag)
SELECT @PRCID = O.ID FROm @opID O
これを修正する方法や、何が起こっているのかを理解する方法についての提案をいただければ幸いです。
これが私の挿入コードを呼び出すメインのストアドプロシージャのSQlフィドルです。 私のコードのSQLフィドル