こんばんは。今日はSQL Serverで登場するbcpユーティリティを使う機会があったので、その際に調べたことも含めて、3分で概要を掴めるよう簡単にまとめておきたいと思います。
それではまいります。
Contents
bcpユーティリティとは?
まず公式ドキュメントはこちらです。
https://docs.microsoft.com/ja-jp/sql/tools/bcp-utility?view=sql-server-ver15
- bulc copy program utilityを略してbcpユーティリティ
- Microsoft SQL Server のインスタンスと、ユーザー指定の形式のデータファイルとの間でデータを一括コピーするコマンド ライン ツール
- 実体はBcp.exe
- データベースではなくて、クライアント側にインストールして使う
- こちらのサイトからダウンロードできるsqlcmdツールに含まれている
bcpユーティリティでできること
こちらにも説明があります。要はデータの一括エクスポートとインポートができるツールになります。
- テーブルからデータ ファイルにSQL Server一括エクスポートする
- bcp ユーティリティは ODBC 一括コピーを使用して書き込まれる
- クエリからのデータの一括エクスポート
- データ ファイルからSQL Serverテーブルにデータを一括インポートする
- フォーマット ファイルの生成
bcpとsqlcmdの違い
こちらの記事が分かりやすく参考になりました。
https://dev.classmethod.jp/articles/install-sqlcmd/
bcpは一括インポートとエクスポートに特化したコマンドラインツール、sqlcmdはもっと広くsql serverを操作できるコマンドラインツール、ということらしい。
他の一括処理ソリューションと比べたパフォーマンス
一括インポートでいうとBULK INSERTも候補に挙がるかと思います。
BULK INSERTとのパフォーマンスの違いについては、以下のブログの記事が参考になりました。
bcpコマンドを使えるようにする
なお、以下の通り、bcpコマンド含めたsqlcmdツールはAzure Cloud ShellやData Studio、SSMSといったツールと一緒にプレインストール済のようです。
bcpがインストールされたローカル端末で”bcp -v”とうってみるとコマンドが使えることが確認できます。
以上、超簡単ですがbcpユーティリティについての流し読みでした。
すでに出尽くした情報かもしれませんが、参考になりましたら幸いです。
次の記事では、実際にこのコマンドを使ってAzure SQL Databaseへのインポート/エクスポートを試してみたいと思います
おしまい
コメントを残す