クエリからデータ ファイルへのデータのエクスポート

bcp コマンドを使用すると、Transact-SQL ステートメントからデータ ファイルに結果セットをエクスポートできます。Transact-SQL ステートメントは、分散クエリや、複数のテーブルを結合する SELECT ステートメントなど、結果セットを返す任意の有効なステートメントです。

テーブルやビューからデータを一括エクスポートする場合、データ ファイルにデータが書き込まれる順序は保証されません。一括エクスポート操作でデータ ファイル内のテーブル データの順序が保持されるようにするには、クエリを使用できます。

一部の Transact-SQL ステートメントからは、複数の結果セットが返されることに注意してください。たとえば、COMPUTE 句を指定する SELECT ステートメントや、複数の SELECT ステートメントを含むストアド プロシージャがこれに該当します。Transact-SQL ステートメントから複数の結果セットが返される場合、最初の結果セットのみがコピーされ、それ以降の結果セットは無視されます。

注意

bcp コマンド、BULK INSERT ステートメント、および OPENROWSET (BULK ) 関数 (Transact-SQL) を使用すると、一括インポート操作時にデータ ファイル内のデータをどのように並べ替えるかを指定できます。詳細については、「データの一括インポート時の並べ替え順の制御」を参照してください。一括インポート中にデータの順序を保持すると、パフォーマンスが大幅に向上することがあります。詳細については、「一括インポートのパフォーマンスの最適化」を参照してください。

次の例では、AdventureWorks2008R2Person.Person テーブルから Contacts.txt データ ファイルに名前をエクスポートします。名前は姓で並べ替えられてから、名で並べ替えられます。

この例は、Microsoft Windows コマンド プロンプトで次のように入力して実行します。

bcp "SELECT FirstName, LastName FROM AdventureWorks2008R2.Person.Person ORDER BY LastName, Firstname" queryout Contacts.txt -c -T 

bcp "SELECT FirstName, LastName FROM AdventureWorks2008R2.Person.Person ORDER BY LastName, Firstname" queryout Contacts.txt -c -T 
セキュリティに関する注意セキュリティに関する注意

場合によっては、接続先サーバー インスタンスの名前を指定する必要があります。また、ユーザー名とパスワードの指定が必要な場合もあります。詳細については、「bcp ユーティリティ」を参照してください。