一時テーブルから本テーブルにデータを移行させる処理をバッチを使用して、プロシージャを実行させるのですが、そのプロシージャ内の処理をテストする為のデータをどのように作成すればいいのかがわかりません。
ご教示頂ければと思います。
CREATE PROCEDURE [dbo].[sp_141_700]
@pMst_Handling_Company_Id INT
AS
SET NOCOUNT ON;
DECLARE @ErrMessage VARCHAR(1000) -- エラーメッセージ
, @iParm_Check INT -- チェック用
, @iIs_TrnStart INT -- トランザクション開始判定(0:トランザクション未開始、1:トランザクション開始)
, @dUpdate_Date DATETIME -- 更新日時
, @vUpdate_User_Id VARCHAR(40) -- 更新ユーザー
, @vUpdate_Prg_Id VARCHAR(20) -- 更新プログラムID
, @dTaisyo_Date DATETIME -- 対象日付
-- 入力データチェック用
, @curInput CURSOR -- 入力チェック用カーソル
, @I_INPUT_CHECK INT -- 未入力チェック (0:チェックOK、1:チェックNG)
, @I_LOGI_ONETMCSTM_CD VARCHAR(30) -- 物流ワンタイムコード
, @I_CHKDEGT_SHIPCSTM_CD VARCHAR(11) -- チェックデジット付出荷先コード
-- 重複チェック用
, @curDuplicate1 CURSOR -- 重複レコードカーソル
;
-- 対象データ保持テーブル
CREATE TABLE #tTmp_MARSIF_TMP
(
LOGI_ONETMCSTM_CD VARCHAR(10) COLLATE Japanese_CI_AI_KS_WS -- 物流ワンタイムコード
, ONETMCSTM_CD VARCHAR(10) COLLATE Japanese_CI_AI_KS_WS -- ワンタイムコード
, VKORG VARCHAR(4) COLLATE Japanese_CI_AI_KS_WS -- 販売組織
, LOGI_CHANEL_CD VARCHAR(2) COLLATE Japanese_CI_AI_KS_WS -- 物流流通チャネルコード
, SPART VARCHAR(2) COLLATE Japanese_CI_AI_KS_WS -- 製品部門
, KANA_NM VARCHAR(600) COLLATE Japanese_CI_AI_KS_WS -- ワンタイムカナ名称
, SHORT_NM VARCHAR(120) COLLATE Japanese_CI_AI_KS_WS -- ワンタイム略称
, POST_CD_SAP VARCHAR(10) COLLATE Japanese_CI_AI_KS_WS -- SAP用郵便番号
, COUNTRY VARCHAR(2) COLLATE Japanese_CI_AI_KS_WS -- 国コード
, TEL VARCHAR(15) COLLATE Japanese_CI_AI_KS_WS -- 電話
, FAX VARCHAR(15) COLLATE Japanese_CI_AI_KS_WS -- FAX
, WAERS VARCHAR(3) COLLATE Japanese_CI_AI_KS_WS -- 通貨コード
, KALKS VARCHAR(1) COLLATE Japanese_CI_AI_KS_WS -- 得意先価格決定区分
, TAXKD VARCHAR(1) COLLATE Japanese_CI_AI_KS_WS -- 税分類
, KVGR1 VARCHAR(3) COLLATE Japanese_CI_AI_KS_WS -- 得意先グループ1
, SHIP_AREA VARCHAR(10) COLLATE Japanese_CI_AI_KS_WS -- 納入区域
, AREA_CD VARCHAR(10) COLLATE Japanese_CI_AI_KS_WS -- 地域コード
);
**-- 6. ワンタイム出荷先マスタ追加 INSERT INTO dbo.MST_W_SHOP_SHIPMENT (SHOP_SHIPMENT_CD , SHOP_SHIPMENT_AGENCY_CD , EFFECT_FLG , MST_HANDLING_COMPANY_ID , SALES_ORGANIZATION , DISTRIBUTION_CHANNEL , PRODUCT_DIVISION , CLIENT_ACCOUNT_GROUP , SEARCH_CONDITION1 , NAME , POST_CODE , COUNTRY_CODE , GEOGRAPHICAL_NAME , LANGUAGE , TEL1 , FAX , SHIPPING_CONDITION , COUNTRY_DISPATCH , TAX_CATEGORY , CLIENT_TAX_GROUPING , CLIENT_GROUP1 , DELIVERY_ZONE , RECEIVED_BLOCK , SHIPPING_BLOCK , PREFECTURE_CD , SALES_PROMOTION_FLG , BRANCH_OFFICE_CD , REGION_ID , CREATE_DATE , CREATE_USER_ID , CREATE_PRG_ID , UPDATE_DATE , UPDATE_USER_ID , UPDATE_PRG_ID ) SELECT T1.LOGI_ONETMCSTM_CD , T1.ONETMCSTM_CD , 1 , '1' , T1.VKORG , T1.LOGI_CHANEL_CD , T1.SPART , '0' , T1.KANA_NM , T1.SHORT_NM , T1.POST_CD_SAP , T1.COUNTRY , ' ' , 'J' , T1.TEL , T1.FAX , T1.WAERS , T1.KALKS , 'MWST' , T1.TAXKD , T1.KVGR1 , T1.SHIP_AREA , ' ' , ' ' , '13' , ' ' , T1.AREA_CD , T1.AREA_CD , @dUpdate_Date , @vUpdate_User_Id , @vUpdate_Prg_Id , @dUpdate_Date , @vUpdate_User_Id , @vUpdate_Prg_Id FROM #tTmp_MARSIF_TMP AS T1 WHERE NOT EXISTS (SELECT * FROM #tTmp_DUPLICAT WHERE #tTmp_DUPLICAT.LOGI_ONETMCSTM_CD = T1.LOGI_ONETMCSTM_CD) AND NOT EXISTS (SELECT * FROM MST_W_SHOP_SHIPMENT WHERE MST_W_SHOP_SHIPMENT.SHOP_SHIPMENT_CD = T1.LOGI_ONETMCSTM_CD) ; COMMIT TRANSACTION -- コミット実行
**
-- 7.正常完了ログ出力
EXEC sc_090_000 '0','sp_141_700(ワンタイム出荷先マスタ登録)','SUCCESS'
Return 0 -- 正常
End Try
--例外処理
Begin Catch
print error_message()
IF (@iIs_TrnStart = 1) BEGIN ROLLBACK TRANSACTION -- ロールバック実行 END SET @ErrMessage = '例外が発生しました。' EXEC sc_090_000 '-1','sp_141_700(ワンタイム出荷先マスタ登録)',@ErrMessage --エラーログ出力 Return -1 -- エラー
End Catch
SET ANSI_NULLS ON
GO
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。