2020年04月14日

SQL Server テーブル出力バッチ

SQL Serverで、テーブルをCSVで出力するバッチです。
指定テーブルの全レコードを対象とする場合は bcp %DBNAME%%TABLE% out ... とする。
rem SQL Server テーブル出力バッチ

rem 初期値セット
set DBNAME=[WORKDB].[dbo].
set TABLE=MyTable
set SQL="SELECT * FROM %DBNAME%%TABLE% WHERE MyColumn IS NOT NULL"
set OUTPUTDIR=C:\WORK\
set OUTPUTFILE=OUTPUT_%TABLE%.csv
set OUTPUTPATH=%OUTPUTDIR%%OUTPUTFILE%
set TERMINATOR=,
set SERVERNAME="myserver"
set LOGINID="loginid"
set PASSWORD="123456789"

rem csvファイル出力実行
bcp %SQL% queryout %OUTPUTPATH% -c -t %TERMINATOR% -S %SERVERNAME% -U %LOGINID% -P %PASSWORD%

pause
テキストファイルをもとにテーブルを一括でCSVへ出力する場合は、以下のようにします。
rem SQL Server 一括テーブル出力バッチ

rem 初期値セット
set DBNAME=[WORKDB].[dbo].
set OUTPUTDIR=C:\WORK\
set TERMINATOR=,
set SERVERNAME="myserver"
set LOGINID="loginid"
set PASSWORD="123456789"

rem csvファイル出力実行(テーブル一覧を書いたTableList.txtを用意しておく)
for /f %%i in (TableList.txt) do (
if %%i==dummystring (
rem 無視文字列
) else (
bcp "SELECT * FROM %DBNAME%%%i WHERE MyColumn IS NOT NULl" queryout %OUTPUTDIR%OUTPUT_%%i.csv -c -t %TERMINATOR% -S %SERVERNAME% -U %LOGINID% -P %PASSWORD%
)
pause
)

pause

posted by Hiro at 19:14| Comment(2) | プログラム
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: