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

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

ms189110.note(ja-jp,SQL.90).gifメモ :
データ変換の詳細については、「データ型の変換 (データベース エンジン)」を参照してください。

ファイル ストレージ型の 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 を指定し、ネイティブ データ型形式で格納されたデータの場合は、必要に応じて次のファイル ストレージ型のいずれかを指定します。

    ファイル ストレージ型 コマンド プロンプトで入力する文字

    char1

    c[har]

    varchar

    c[har]

    nchar

    w

    nvarchar

    w

    text2

    T[ext]

    ntext2

    W

    binary

    x

    varbinary

    x

    image2

    I[mage]

    datetime

    d[ate]

    smalldatetime

    D

    decimal

    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

    bit

    b[it]

    uniqueidentifier

    u

    sql_variant

    V[ariant]

    timestamp

    x

    UDT (ユーザー定義データ型)

    U

    XML

    X

    1char ファイル ストレージ型でエクスポートされた非文字データのデータ ファイルの場合、このファイルに割り当てられる格納領域のサイズは、フィールド長、プレフィックス長、およびターミネータの相互関係で決まります。詳細については、「文字形式のデータの格納」を参照してください。
    2ntexttext、および image の各データ型は、今後のバージョンの SQL Server では廃止される予定です。新しい開発作業ではこれらのデータ型の使用を避け、現在このデータ型を使用しているアプリケーションは変更を検討してください。代わりに、nvarchar(max)varchar(max)、および varbinary(max) を使用してください。詳細については、「大きな値のデータ型の使用」を参照してください。

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

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

ファイル ストレージ型 ホスト ファイル データ型

char1

SQLCHAR

varchar

SQLCHAR

nchar

SQLNCHAR

nvarchar

SQLNCHAR

text2

SQLCHAR

ntext2

SQLNCHAR

binary

SQLBINARY

varbinary

SQLBINARY

image2

SQLBINARY

datetime

SQLDATETIME

smalldatetime

SQLDATETIM4

decimal

SQLDECIMAL

numeric

SQLNUMERIC

float

SQLFLT8

real

SQLFLT4

int

SQLINT

bigint

SQLBIGINT

smallint

SQLSMALLINT

tinyint

SQLTINYINT

money

SQLMONEY

smallmoney

SQLMONEY4

bit

SQLBIT

uniqueidentifier

SQLUNIQUEID

sql_variant

SQLVARIANT

timestamp

SQLBINARY

UDT (ユーザー定義データ型)

SQLUDT

1 文字形式で格納されたデータ ファイルでは、ファイル ストレージ型として char が使用されます。したがって、文字データ ファイルの場合、フォーマット ファイルに表示されるデータ型は SQLCHAR のみです。

2 DEFAULT 値が指定されている text 列、ntext 列、および image 列にデータを一括インポートすることはできません。

ファイル ストレージ型のその他の考慮事項

SQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするときは、次のことを考慮してください。

  • char 型は、常にファイル ストレージ型として指定できます。
  • 無効な暗黙的な型変換を表すファイル ストレージ型を入力すると、bcp は失敗します。たとえば、smallint データに int を指定することはできますが、int データに smallint を指定すると、結果としてオーバーフロー エラーが発生します。
  • floatmoneydatetime、または int などの非文字データ型をそれぞれのデータベース型として格納すると、データが SQL Server のネイティブ形式でデータ ファイルに書き込まれます。
ms189110.note(ja-jp,SQL.90).gifメモ :
bcp コマンドですべてのフィールドを対話形式で指定すると、各フィールドへの応答を XML 形式以外のファイルに保存するように要求するプロンプトが表示されます。XML 形式以外のファイルの詳細については、「XML 以外のフォーマット ファイルについて」を参照してください。

参照

概念

bcp を使用したフィールド長の指定
フィールド ターミネータと行ターミネータの指定
データ ファイルのプレフィックス長の指定
文字形式のデータの格納

その他の技術情報

bcp ユーティリティ
データ型 (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手