bcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力することができます。
bcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力する
bcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力することができます。
テーブル準備
まずはフォーマットテーブルを出力させるためのテーブルを作成します。
CREATE TABLE test_tbl( no INT NULL ,name VARCHAR(50) NULL )
フォーマットファイル作成
次に作成したテーブルのフォーマットテーブルをbcpコマンドで出力させます。
コマンドプロンプトを開いて以下のコマンドを入力します。
bcp dbo.test_tbl format nul -t , -T -c -x -f TestTable.xml
上記の例では「-t ,」でデータファイルのセパレータ文字を「,」にしています。
また「-T」オプションは「Windows認証」でデータベースにログオンする場合に指定するようです。
通常のユーザー、パスワード入力でログインする場合は「-U ユーザー名 -P パスワード」でログオンするようです。
以下が出力されたフォーマットファイルです。
<?xml version="1.0"?> <BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RECORD> <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="12"/> <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="rn" MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/> </RECORD> <ROW> <COLUMN SOURCE="1" NAME="no" xsi:type="SQLINT"/> <COLUMN SOURCE="2" NAME="name" xsi:type="SQLVARYCHAR"/> </ROW> </BCPFORMAT>
上記のようにXMLファイルでフォーマットフォーマットファイルが出力されます。