電子書籍の厳選無料作品が豊富!

SQL Server 2000でのbulk insert とはどういうものなのでしょうか?

csvなどをテーブルに一括で更新できてしまうものでイメージはよいのでしょうか?csvにヘッダーがある場合除くなどもできたりするのでしょうか?

できれば、具体的なコマンドの書き方もご教示ください。

よろしくお願いします。

A 回答 (1件)

箇条書きで、わかる範囲で回答します。



>SQL Server 2000でのbulk insert とはどういうものなのでしょうか?

一言でいえばCSV形式のファイルをテーブルやビューに、一括して取り込むコマンドです。

CSV形式は、タブやカンマ区切りをはじめ、どんな項目区切り文字でも対応可能で、INSERT文で登録処理するよりもBULK INSERTの方が、高速に処理できることから、私は愛用しています。

>csvにヘッダーがある場合除くなどもできたりするのでしょうか?

はい。できます。正式には、FIRSTROW というオプションを使って、データ読み込み開始行を指定することで、ヘッダ行を読み込まないようにすることができます。
例えば、1行目がヘッダ行、2行目以降がデータ行の場合は、FIRSTROW というオプションに「2」を指定することで、ヘッダ行を読み込むことなく、処理することができます。
詳しくは、
http://msdn.microsoft.com/ja-jp/library/ms188365 …
をご覧下さい。

>できれば、具体的なコマンドの書き方もご教示ください。

どんなCSVファイルを読み込みたいか?にもよりますが、
今回のお話を聞いている限りの仕様だと、

-- タブ区切りのCSV
BULK INSERT [dbo].[OutputTable]
FROM 'c:\aaa.csv'
WITH
(
FIELDTERMINATOR ='\t',
FIRSTROW = 2,
ROWTERMINATOR = '\n'
)

みたいな感じですね。
また、レスポンスを意識し、ある程度、1レコード長の長さが
わかっているのであれば、BATCHSIZE というオプションを使用すると
高速に処理できることがあります。

詳しいことはすべて、マイクロソフトのMSDNに詳しい使い方を
サンプル付きで掲載していますので、ご参考にしてみてください。

http://msdn.microsoft.com/ja-jp/library/ms188365 …

参考URL:http://msdn.microsoft.com/ja-jp/library/ms188365 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!