SQLServerのbcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力する

記事内に広告が含まれています。

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ファイルでフォーマットフォーマットファイルが出力されます。

タイトルとURLをコピーしました