bcp を使用したファイル ストレージ型の指定 (SQL Server)

対象者:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticsアナリティクスプラットフォームシステム(PDW)Microsoft FabricにおけるSQLデータベース

ファイル ストレージ型 は、データ ファイルへのデータの格納方法を記述します。 データ ファイルには、そのデータベース テーブルの型 (ネイティブ形式)、文字表現 (文字書式)、または暗黙的な型変換がサポートされているデータ型のいずれかとしてデータをエクスポートできます。暗黙的な型変換では、たとえば、smallintint としてコピーされます。ユーザー定義のデータ型はその基本データ型としてエクスポートされます。

ファイル ストレージ タイプのbcpプロンプト

対話型 bcp コマンドに、フォーマット ファイル スイッチ (in) またはデータ形式スイッチ (out-f-n、または-c) を指定しない-wまたは-N オプションが含まれている場合、コマンドは各データ フィールドのファイル ストレージの種類を次のように求めます。

Enter the file storage type of field <field_name> [<default>]:

この要求への応答は、次のように、実行するタスクによって異なります。

  • できるだけコンパクトなストレージ型 (ネイティブ データ形式) で Microsoft SQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするには、bcp によって提供される既定のファイル ストレージ型をそのまま使用します。 ネイティブのファイル ストレージ型の一覧については、このトピックの「ネイティブのファイル ストレージ型」を参照してください。

  • 文字形式で SQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするには、テーブルのすべての列にファイル ストレージ型として char を指定します。

  • データ ファイルから SQL Server のインスタンスにデータを一括インポートするには、文字形式で格納されたデータの場合はファイル ストレージ型として char を指定し、ネイティブ データ型形式で格納されたデータの場合は、必要に応じて次のファイル ストレージ型のいずれかを指定します。

    ファイル ストレージ型 コマンドプロンプトで入力してください
    char c[har]
    varchar c[har]
    nchar w
    nvarchar w
    text T[ext]
    ntext2 W
    [バイナリ] x
    varbinary x
    image I[mage]
    datetime d[ate]
    smalldatetime D
    time te
    date de
    datetime2 d2
    datetimeoffset do
    小数 n
    numeric n
    float f[loat]
    real r
    Int i[nt]
    bigint B[igint]
    smallint s[mallint]
    tinyint t[inyint]
    money m[oney]
    smallmoney M
    ビット b[it]
    uniqueidentifier u
    sql_variant V[ariant]
    timestamp x
    UDT (ユーザー定義データ型) U
    XML X
    vector v[ector]

    * char ファイル ストレージ型でエクスポートされた非文字データのデータ ファイルの場合、このファイルに割り当てられる格納領域のサイズは、フィールド長、プレフィックス長、およびターミネータの相互関係で決まります。

    ** ntexttextimage の各データ型は、SQL Server の今後のバージョンで削除されます。 新しい開発作業ではこれらのデータ型の使用を避け、現在このデータ型を使用しているアプリケーションは変更を検討してください。 代わりに、 nvarchar(max)varchar(max)varbinary(max) を使用してください。

ネイティブ ファイル ストレージの種類

各ネイティブのファイル ストレージ型は、対応するホスト ファイル データ型として、フォーマット ファイルに記録されます。

ファイル ストレージ型 ホスト ファイル データ型
char SQLCHAR
varchar SQLCHAR
nchar SQLNCHAR
nvarchar SQLNCHAR
text SQLCHAR
ntext SQLNCHAR
[バイナリ] SQLBINARY
varbinary SQLBINARY
image SQLBINARY
datetime SQLDATETIME
smalldatetime SQLDATETIM4
小数 SQLDECIMAL
numeric SQLNUMERIC
float SQLFLT8
real SQLFLT4
int SQLINT
bigint SQLBIGINT
smallint SQLSMALLINT
tinyint SQLTINYINT
money SQLMONEY
smallmoney SQLMONEY4
ビット SQLBIT
uniqueidentifier SQLUNIQUEID
sql_variant SQLVARIANT
timestamp SQLBINARY
UDT (ユーザー定義データ型) SQLUDT
vector SQLVECTOR
  • 文字形式で格納されるデータ ファイルは、ファイル ストレージの種類として char を使用します。 したがって、文字データ ファイルの場合、フォーマット ファイルに表示されるデータ型は SQLCHAR のみです。

  • 値を持つテキストntextDEFAULTの列にデータを一括インポートすることはできません。

ファイル ストレージの種類に関するその他の考慮事項

SQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするとき:

  • char との間の変換をサポートしないベクター型の列を除き、ファイル ストレージの種類として char を常に指定できます。

  • 無効な暗黙的な型変換を表すファイル ストレージ型を入力すると、 bcp は失敗します。たとえば、 int データに smallint を指定することはできますが、 smallint データに int を指定すると、結果としてオーバーフロー エラーが発生します。

  • floatmoneydatetime、または int などの非文字データ型をそれぞれのデータベース型として格納すると、データが SQL Server のネイティブ形式でデータ ファイルに書き込まれます。

    注意

    bcp コマンドですべてのフィールドを対話形式で指定すると、各フィールドへの応答を XML 形式以外のファイルに保存するように要求するプロンプトが表示されます。 XML 以外のフォーマット ファイルについて詳しくは、「XML 以外のフォーマット ファイル (SQL Server)」をご覧ください。