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

適用対象:yesSQL Server (サポートされているすべてのバージョン) Yes Azure SQL Database Yes azure SQL Managed Instance yes azure Synapse analytics yes analytics Platform System (PDW)

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

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

対話型の bcp コマンドで、フォーマット ファイル スイッチ ( -f ) またはデータ形式スイッチ ( -n-c-w、または -N) のどちらも付けずに inまたは outオプションを指定すると、次のように各データ フィールドのファイル ストレージ型を要求するプロンプトが表示されます。

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

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

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

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

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

    ファイル ストレージ型 コマンド プロンプトで入力する文字
    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
    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

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

    * * Ntexttext、およびimageデータ型は、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
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

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

**DEFAULT 値を持つ textntextimage 列にデータを一括インポートすることはできません。

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

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

  • char 型は、常にファイル ストレージ型として指定できます。

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

  • floatmoneydatetimeint などの非文字データ型がデータベース型として格納されている場合、データは SQL Server ネイティブ形式でデータ ファイルに書き込まれます。

    Note

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

参照

bcp ユーティリティ
データ型 (Transact-SQL)
bcp を使用したフィールド長の指定 (SQL Server)
フィールド ターミネータと行ターミネータの指定 (SQL Server)
bcp を使用したデータ ファイルのプレフィックス長の指定 (SQL Server)