データのエクスポートとインポートをBCPユーティリティを利用して行います。
bcp データベース名.所有者(初期はdbo).テーブル名 in|out|queryout|format ファイル名 オプション bcp Test_db.dbo.TestTbl out TestTbl.txt /U ユーザ名 /S サーバ名 /P パスワード /c /t , /r \r\n /q >> exec.log
/c /cを指定しない場合、列ごとにプロンプトでタブや改行を指定する必要がある。 /t /cを指定した場合、デフォルトはタブ区切りになる。変更する場合に指定。 /r /cを指定した場合、デフォルトは\nになる。変更する場合に指定。 /q 空白や単一引用符を含むデータベース名、所有者、テーブル名を指定する場合に指定。 /o bcpコマンド単位でログ出力できる。「>> ファイル名」の方が楽。 /f フォーマット個別指定。/cの方が楽。 以下がフォーマット。 8.0 2 1 SQLCHAR 0 3 "," 1 USERID Japanese_BIN 2 SQLDATETIME 0 8 "," 2 DATE "" 1行目:バージョン番号 2行目:列数 3行目:番号、データ型、プレフィックス長、項目長、終端文字、DB内の項目番号、DB内の項目名、行の照合順序(※1) ※1 照合順序の例 Japanese_BIN 大文字、小文字、シングルバイト、ダブルバイト、ひらがな、カタカナを全て区別する Japanese_CI_AS 大文字、小文字、シングルバイト、ダブルバイト、ひらがな、カタカナを全て区別しない
複数テーブルに対して作成する場合、
以下のようなSQL文を準備しておくと汎用性が高くなる。
SELECT 'bcp Test_db.dbo.' + name + ' out ' + name + '.txt /U ユーザ名 /S サーバ名 /P パスワード /c /t "," /r \r\n' FROM sysobjects WHERE type = 'U' ORDER BY name;