ここでは、次の例について説明します。
-
A. データ ファイルへのテーブル行のコピー (信頼関係接続を使用)
-
B. データ ファイルへのテーブル行のコピー (混合モード認証を使用)
-
C. ファイルからテーブルへのデータのコピー
-
D. データ ファイルへの特定の列のコピー
-
E. データ ファイルへの特定の行のコピー
-
F. クエリからデータ ファイルへのデータのコピー
-
G. XML 以外のフォーマット ファイルの作成
-
H. XML フォーマット ファイルの作成
-
I. フォーマット ファイルを使用した bcp での一括インポート
A. データ ファイルへのテーブル行のコピー (信頼関係接続を使用)
次の例では、AdventureWorks.Sales.Currency テーブルに対して out オプションを実行します。Currency.dat という名前のデータ ファイルを作成し、文字形式を使用してテーブルのデータをこのデータ ファイルにコピーします。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
コマンド プロンプトで、次のコマンドを入力します。
bcp AdventureWorks.Sales.Currency out Currency.dat -T -c
B. データ ファイルへのテーブル行のコピー (混合モード認証を使用)
次の例では、AdventureWorks.Sales.Currency テーブルに対して out オプションを実行します。Currency.dat という名前のデータ ファイルを作成し、文字形式を使用してテーブルのデータをこのデータ ファイルにコピーします。
この例では、混合モード認証を使用していることを前提としているため、ログイン ID の指定に -U スイッチを使用する必要があります。また、ローカル コンピュータ上にある SQL Server の既定のインスタンスに接続していない場合は、-S スイッチを使用して、システム名およびインスタンス名 (省略可) を指定します。
bcp AdventureWorks.Sales.Currency out Currency.dat -c -U<login_id> -S<server_name\instance_name>
システムによってパスワードの入力が求められます。
C. ファイルからテーブルへのデータのコピー
次の例では、上の例で作成されたファイル (Currency.dat) を使用して、in オプションを実行します。ただし、最初に AdventureWorks Sales.Currency テーブルの空のコピー、Sales.Currency2 が作成され、これにデータがコピーされます。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
空のテーブルを作成するには、クエリ エディタで次のコマンドを入力します。
USE AdventureWorks;
GO
SELECT * INTO AdventureWorks.Sales.Currency2
FROM AdventureWorks.Sales.Currency WHERE 1=2
文字データを新規のテーブルに一括コピーする、つまりデータをインポートするには、コマンド プロンプトで次のコマンドを入力します。
bcp AdventureWorks.Sales.Currency2 in Currency.dat -T -c
コマンドが正常終了したことを確認するには、クエリ エディタでテーブルの内容を表示し、次を入力します。
USE AdventureWorks;
GO
SELECT * FROM Sales.Currency2
D. データ ファイルへの特定の列のコピー
特定の列をコピーする場合に、queryout オプションを使用できます。次の例では、Sales.Currency テーブルの Name 列のみをデータ ファイルにコピーします。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
Windows のコマンド プロンプトで、次のように入力します。
bcp "SELECT Name FROM AdventureWorks.Sales.Currency" queryout Currency.Name.dat -T -c
E. データ ファイルへの特定の行のコピー
特定の行をコピーする場合に、queryout オプションを使用できます。次の例では、Jarrod Rana という名前の連絡先の行のみを AdventureWorks.Person.Contact テーブルからデータ ファイル (Jarrod Rana.dat) へコピーします。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
Windows のコマンド プロンプトで、次のように入力します。
bcp "SELECT * FROM AdventureWorks.Person.Contact WHERE FirstName='Jarrod' AND LastName='Rana' " queryout "Jarrod Rana.dat" -T -c
F. クエリからデータ ファイルへのデータのコピー
Transact-SQL ステートメントからデータ ファイルに結果セットをコピーするには、queryout オプションを使用します。次の例では、名前 (姓、名の順) を AdventureWorks.Person.Contact テーブルから、Contacts.txt データ ファイルへコピーします。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
Windows のコマンド プロンプトで、次のように入力します。
bcp "SELECT FirstName, LastName FROM AdventureWorks.Person.Contact ORDER BY LastName, Firstname" queryout Contacts.txt -c -T
G. XML 以外のフォーマット ファイルの作成
次の例では、AdventureWorks データベース内の Sales.Currency テーブルに対して、Currency.fmt という名前の XML 以外のフォーマット ファイルを作成します。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
Windows のコマンド プロンプトで、次のように入力します。
bcp AdventureWorks.Sales.Currency format nul -T -c -f Currency.fmt
詳細については、「XML 以外のフォーマット ファイルについて」を参照してください。
H. XML フォーマット ファイルの作成
次の例では、AdventureWorks データベース内の Sales.Currency テーブルに対して Currency.xml という名前の XML フォーマット ファイルを作成します。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
Windows のコマンド プロンプトで、次のように入力します。
bcp AdventureWorks.Sales.Currency format nul -T -c -x -f Currency.xml
メモ : |
|---|
|
-x スイッチを使用するには、bcp 9.0 クライアントを使用する必要があります。bcp 9.0 クライアントの使用方法の詳細については、「解説」を参照してください。
|
詳細については、「XML フォーマット ファイルについて」を参照してください。
I. フォーマット ファイルを使用した bcp での一括インポート
SQL Server のインスタンスへデータをインポートするときに、既に作成してあるフォーマット ファイルを使用するには、-f スイッチを in オプションと共に使用します。たとえば、次のコマンドは、作成済みのフォーマット ファイル (Currency.xml) を使用して、データ ファイル (Currency.dat) の内容を Sales.Currency テーブルのコピー (Sales.Currency2) に一括コピーします。この例では、Windows 認証を使用していること、および bcp コマンドを実行しているサーバー インスタンスへの信頼関係接続が与えられていることを前提としています。
Windows のコマンド プロンプトで、次のように入力します。
bcp AdventureWorks.Sales.Currency2 in Currency.dat -T -f Currency.xml