次の方法で共有


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

ファイル ストレージ型 は、データ ファイルへのデータの格納方法を記述します。 データ ファイルには、データベース テーブルの型 (ネイティブ形式)、文字表現 (文字形式)、または暗黙的な型変換がサポートされているデータ型のいずれかでデータをエクスポートできます。暗黙的な型変換では、たとえば、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ファイル ストレージの種類を指定し、ネイティブ データ型形式で格納されるデータの場合は、必要に応じてファイル ストレージの種類のいずれかを指定します。

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

    1 フィールドの長さ、プレフィックスの長さ、およびターミネータの相互作用によって、ファイル ストレージの種類としてエクスポートされる非文字データのデータ ファイルに割り当てられる記憶域領域の char 量が決まります。

    2 データ型 、text、および image データ型はntext、将来のバージョンの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 既定値を持つ 、ntext、および image 列にtextデータを一括インポートすることはできません。

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

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

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

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

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

    注意

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

参照

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