bcp を使用したファイル ストレージ型の指定 (SQL Server)Specify File Storage Type by Using bcp (SQL Server)

適用対象: ○SQL Server ○Azure SQL Database○Azure SQL Data Warehouse ○Parallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

ファイル ストレージ型 は、データ ファイルへのデータの格納方法を記述します。The file storage type describes how data is stored in the data file. データ ファイルには、データベース テーブルの型 (ネイティブ形式)、文字表現 (文字形式)、または暗黙的な型変換がサポートされているデータ型のいずれかでデータをエクスポートできます。暗黙的な型変換では、たとえば、 smallintintとしてコピーされます。ユーザー定義のデータ型は、基本データ型としてエクスポートされます。Data can be exported to a data file as its database table type (native format), in its character representation (character format), or as any data type where implicit conversion is supported; for example, copying a smallint as an int. User-defined data types are exported as their base types.

ファイル ストレージ型の bcp プロンプトThe bcp Prompt for File Storage Type

対話型の bcp コマンドで、フォーマット ファイル スイッチ ( -f ) またはデータ形式スイッチ ( -n-c-w、または -N) のどちらも付けずに inまたは outオプションを指定すると、次のように各データ フィールドのファイル ストレージ型を要求するプロンプトが表示されます。If an interactive bcp command contains the in or out option without either the format file switch (-f) or a data-format switch (-n, -c, -w, or -N), the command prompts for the file storage type of each data field, as follows:

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

この要求への応答は、次のように、実行するタスクによって異なります。Your response to this prompt depends on the task you perform, as follows:

  • できるだけコンパクトなストレージ型 (ネイティブ データ形式) で MicrosoftMicrosoft SQL ServerSQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするには、 bcpによって提供される既定のファイル ストレージ型をそのまま使用します。To bulk export data from an instance of MicrosoftMicrosoft SQL ServerSQL Server to a data file in the most compact storage possible (native data format), accept the default file storage types that are provided by bcp. ネイティブのファイル ストレージ型の一覧については、このトピックの「ネイティブのファイル ストレージ型」を参照してください。For a list of the native file storage types, see "Native File Storage Types," later in this topic.

  • 文字形式で SQL ServerSQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするには、テーブルのすべての列にファイル ストレージ型として char を指定します。To bulk export data from an instance of SQL ServerSQL Server to a data file in character format, specify char as the file storage type for all columns in the table.

  • データ ファイルから SQL ServerSQL Server のインスタンスにデータを一括インポートするには、文字形式で格納されたデータの場合はファイル ストレージ型として char を指定し、ネイティブ データ型形式で格納されたデータの場合は、必要に応じて次のファイル ストレージ型のいずれかを指定します。To bulk import data to an instance of SQL ServerSQL Server from a data file, specify the file storage type as char for types stored in character format and, for data stored in native data type format, specify one of the file storage types, as appropriate:

    ファイル ストレージ型File storage type コマンド プロンプトで入力する文字Enter at command prompt
    char*char* c[har]c[har]
    varcharvarchar c[har]c[har]
    ncharnchar ww
    nvarcharnvarchar ww
    text*text*** T[ext]T[ext]
    ntext2ntext2 WW
    [バイナリ]binary xx
    varbinaryvarbinary xx
    image*image*** I[mage]I[mage]
    datetimedatetime d[ate]d[ate]
    smalldatetimesmalldatetime DD
    timetime tete
    datedate dede
    datetime2datetime2 d2d2
    datetimeoffsetdatetimeoffset dodo
    decimaldecimal nn
    numericnumeric nn
    floatfloat f[loat]f[loat]
    realreal rr
    IntInt i[nt]i[nt]
    bigintbigint B[igint]B[igint]
    smallintsmallint s[mallint]s[mallint]
    tinyinttinyint t[inyint]t[inyint]
    moneymoney m[oney]m[oney]
    smallmoneysmallmoney MM
    bitbit b[it]b[it]
    uniqueidentifieruniqueidentifier uu
    sql_variantsql_variant V[ariant]V[ariant]
    timestamptimestamp xx
    UDT (ユーザー定義データ型)UDT (a user-defined data type) UU

    *char ファイル ストレージ型でエクスポートされた非文字データのデータ ファイルの場合、このファイルに割り当てられる格納領域のサイズは、フィールド長、プレフィックス長、およびターミネータの相互関係で決まります。*The interaction of field length, prefix length, and terminators determines the amount of storage space that is allocated in a data file for noncharacter data that is exported as the char file storage type.

    **ntexttext、および image データ型は、将来の SQL ServerSQL Serverバージョンで削除される予定です。** The ntext, text, and image data types will be removed in a future version of SQL ServerSQL Server. 新しい開発作業ではこれらのデータ型の使用を避け、現在このデータ型を使用しているアプリケーションは変更を検討してください。In new development work, avoid using these data types, and plan to modify applications that currently use them. 代わりに、 nvarchar(max)varchar(max)varbinary(max) を使用してください。Use nvarchar(max), varchar(max), and varbinary(max) instead.

ネイティブのファイル ストレージ型Native File Storage Types

各ネイティブのファイル ストレージ型は、対応するホスト ファイル データ型として、フォーマット ファイルに記録されます。Each native file storage type is recorded in the format file as a corresponding host file data type.

ファイル ストレージ型File storage type ホスト ファイル データ型Host file data type
varcharvarchar SQLCHARSQLCHAR
nvarcharnvarchar SQLNCHARSQLNCHAR
varbinaryvarbinary SQLBINARYSQLBINARY
smalldatetimesmalldatetime SQLDATETIM4SQLDATETIM4
floatfloat SQLFLT8SQLFLT8
smallmoneysmallmoney SQLMONEY4SQLMONEY4
uniqueidentifieruniqueidentifier SQLUNIQUEIDSQLUNIQUEID
sql_variantsql_variant SQLVARIANTSQLVARIANT
timestamptimestamp SQLBINARYSQLBINARY
UDT (ユーザー定義データ型)UDT (a user-defined data type) SQLUDTSQLUDT

*文字形式で格納されたデータ ファイルでは、ファイル ストレージ型として char が使用されます。*Data files that are stored in character format use char as the file storage type. したがって、文字データ ファイルの場合、フォーマット ファイルに表示されるデータ型は SQLCHAR のみです。Therefore, for character data files, SQLCHAR is the only data type that appears in a format file.

**DEFAULT 値が指定されている text列、 ntext列、および image 列にデータを一括インポートすることはできません。**You cannot bulk import data into text, ntext, and image columns that have DEFAULT values.

ファイル ストレージ型のその他の考慮事項Additional Considerations for File Storage Types

SQL ServerSQL Server のインスタンスからデータ ファイルにデータを一括エクスポートするときは、次のことを考慮してください。When you bulk export data from an instance of SQL ServerSQL Server to a data file:

  • char 型は、常にファイル ストレージ型として指定できます。You can always specify char as the file storage type.

  • 無効な暗黙的な型変換を表すファイル ストレージ型を入力すると、 bcp は失敗します。たとえば、 int データに smallint を指定することはできますが、 smallint データに int を指定すると、結果としてオーバーフロー エラーが発生します。If you enter a file storage type that represents an invalid implicit conversion, bcp fails; for example, though you can specify int for smallint data, if you specify smallint for int data, overflow errors result.

  • floatmoneydatetime、または int などの非文字データ型をそれぞれのデータベース型として格納すると、データが SQL ServerSQL Server のネイティブ形式でデータ ファイルに書き込まれます。When noncharacter data types such as float, money, datetime, or int are stored as their database types, the data is written to the data file in the SQL ServerSQL Server native format.


    bcp コマンドですべてのフィールドを対話形式で指定すると、各フィールドへの応答を XML 形式以外のファイルに保存するように要求するプロンプトが表示されます。After you interactively specify all of the fields in a bcp command, the command prompts you save your responses for each field in a non-XML format file. XML 以外のフォーマット ファイルの詳細については、「XML 以外のフォーマット ファイル (SQL Server)」を参照してください。For more information on non-XML format files, see Non-XML Format Files (SQL Server).

参照See Also

bcp ユーティリティ bcp Utility
データ型 (Transact-SQL) Data Types (Transact-SQL)
bcp を使用したフィールド長の指定 (SQL Server) Specify Field Length by Using bcp (SQL Server)
フィールド ターミネータと行ターミネータの指定 (SQL Server) Specify Field and Row Terminators (SQL Server)
bcp を使用したデータ ファイルのプレフィックス長の指定 (SQL Server)Specify Prefix Length in Data Files by Using bcp (SQL Server)