2016-09-13 4 views
1

.BATのファイルにSQL文が含まれています。そして、私はこれをストアドプロシージャに変換する方法を理解していません。SQLのcmd文をストアドプロシージャに変換する

これは文です:

ECHO 2, MDCESS_TRAKG_NUM, 1 , 2, dropoff, 3, 4, ORDER_NUM, MERCHANT_ORDER_NUM, MASTER_BARCODE, BARCODE, SERIAL_NUM, 5, NET_WEIGHT, GROSS_WEIGHT, DIM_WEIGHT, DRIVER, TRAILER, DELIVERY_DATE >\\c:\\Manifest.txt 

SQLCMD -S SQLSERVEREXPRESS -d MyDb -U sa -P triple -Q "SET NOCOUNT ON select 2 AS '2', ORDE_.billgrp AS ENSENDA_TRAKG_NUM, 1 AS '1', 2 AS '2', dropoff AS dropoff, 3 AS '3', 4 AS '4', orde_.ordernum AS ORDER_NUM, CASE WHEN (Left(daddr,11)='1955 VAUGHN' AND READYDATE=CONVERT(varchar(8),GETDATE(),112)) THEN 'TBLK_ATL_'+ DRV1NUM + '_' + REPLACE(CONVERT(varchar(8),GETDATE(),10) ,'-', '') ELSE left(orde_.ref, 18) END AS MERCHANGE_ORDER_NUM, GFIELD4 AS MASTER_BARCODE, CASE WHEN orde_.CLIENTNUM in ('CDSLOG45', 'NEWAGE20', 'ENATLPEL') THEN orde_.BILLGRP ELSE GFIELD2 END AS BARCODE, left(GFIELD3,30) AS SERIAL_NUM, 5 AS '5', isnull(INVNUM,0) AS NET_WEIGHT,isnull(INVNUM,0) AS GROSS_WEIGHT,isnull(INVNUM,0) AS DIM_WEIGHT, orde_.DRV1NUM AS DRIVER, orde_.CALLER AS TRAILER, CONVERT(VARCHAR(10), orde_.READYDATE, 120) AS DELIVERY_DATE FROM GENERICFIELDS FULL OUTER JOIN ORDE_ ON GENERICFIELDS.ORDERID=ORDE_.ORDERID FULL OUTER JOIN CLIENT ON ORDE_.CLIENTID=CLIENT.CLIENTID WHERE orde_.droptime is null and (GFIELD2 is not null or orde_.CLIENTNUM in ('CDSLOG45', 'NEWAGE20', 'ENATLPEL')) and ORDE_.CANCELLED='0' and dispid in ('65')" -h-1 -b -o "\\ADV\SCANNERMANIFEST.TXT" -s "," -W 

copy \\intro\Atlanta5\*.txt \\intro\My.txt /y /b 

del \\intro\My.csv 

ren \\intro\My.txt My.csv 

私は、ストアドプロシージャにこれを変換することができる方法を教えていただけますか?

答えて

1

は、SQLサーバーからデータをコピーするには、SQLクエリ

EXEC xp_cmdshell 'copy \\intro\Atlanta5\*.txt \\intro\My.txt /y /b'; 

を実行した後、あなたが以下のようなユーティリティをbcpは試すことができ、すべてのコピーを実行するためにxp_cmdshellを使用して削除して名前を変更することができます

bcp "SELECT * from table " queryout D:\BCP\output.txt -t, -c -T,-S SQLSERVER-d MyDb -U sa -P triple 
+0

あなたのリプレイをありがとう。私はSQLCMDのラインに問題があるspでその行を書き直す方法 –

+0

SQL sprocでsqlcmdが必要なのはなぜですか?あなたsproc儀式で直接SQLコマンドをecexuteすることができますか?私はここで違うと理解していますか? –

+0

私は実際に私の選択ステートメントから返されているテキストファイルに値を書きたいと思います。そして私は店の手順からこれを行う必要があります –

関連する問題