以前のバージョンの SQL Server からのネイティブ形式データおよび文字形式データのインポートImport Native and Character Format Data from Earlier Versions of SQL Server

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL Server 2017SQL Server 2017では、 bcp を使用すると、 SQL Server 2000 (8.x)SQL Server 2000 (8.x)SQL Server 2005 (9.x)SQL Server 2005 (9.x)SQL Server 2008:SQL Server 2008SQL Server 2008 R2SQL Server 2008 R2、または SQL Server 2012 (11.x)SQL Server 2012 (11.x) からネイティブ形式データおよび文字形式データを -V スイッチを指定してインポートすることができます。In SQL Server 2017SQL Server 2017, you can use bcp to import native and character format data from SQL Server 2000 (8.x)SQL Server 2000 (8.x), SQL Server 2005 (9.x)SQL Server 2005 (9.x), SQL Server 2008:SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2, or SQL Server 2012 (11.x)SQL Server 2012 (11.x) by using the -V switch. -V スイッチを使用すると、 SQL Server 2017SQL Server 2017 は指定された以前のバージョンの SQL ServerSQL Serverのデータ型を使用し、データ ファイル形式はその以前のバージョンのものと同じになります。The -V switch causes SQL Server 2017SQL Server 2017 to use data types from the specified earlier version of SQL ServerSQL Server, and the data file format are the same as the format in that earlier version.

データ ファイルに以前の SQL ServerSQL Server バージョンを指定するには、 -V スイッチと次のいずれかの修飾子を使用します。To specify an earlier SQL ServerSQL Server version for a data file, use the -V switch with one of the following qualifiers:

SQL Server のバージョンSQL Server version QualifierQualifier
SQL Server 2000 (8.x)SQL Server 2000 (8.x) -V80-V80
SQL Server 2005 (9.x)SQL Server 2005 (9.x) -V90-V90
SQL Server 2008:SQL Server 2008 -V100-V100
SQL Server 2012 (11.x)SQL Server 2012 (11.x) -V 110-V 110

データ型についてInterpretation of Data Types

SQL Server 2005 (9.x)SQL Server 2005 (9.x) 以降のバージョンでは、いくつかの新しいデータ型がサポートされるようになりました。and later versions have support for some new types. 以前の SQL ServerSQL Server バージョンに新しいデータ型をインポートする場合は、古い bcp クライアントで読み取ることが可能な形式でそのデータ型を格納する必要があります。When you want to import a new data type into an earlier SQL ServerSQL Server version, the data type must be stored in a format that readable by the older bcp clients. 次の表では、以前のバージョンの SQL ServerSQL Serverとの互換性を維持するために、新しいデータ型がどのように変換されるかをまとめています。The following table summarizes how the new data types are converted for compatibility with the earlier versions of SQL ServerSQL Server.

SQL Server 2005 の新しいデータ型New data types in SQL Server 2005 バージョン 6xの互換性のあるデータ型Compatible data types in version 6x バージョン 70 の互換性のあるデータ型Compatible data types in version 70 バージョン 80 の互換性のあるデータ型Compatible data types in version 80
bigintbigint decimaldecimal decimaldecimal *
sql_variantsql_variant texttext nvarchar (4000)nvarchar(4000) *
varchar(max)varchar(max) texttext texttext texttext
nvarchar(max)nvarchar(max) ntextntext ntextntext ntextntext
varbinary(max)varbinary(max) imageimage imageimage imageimage
XMLXML ntextntext ntextntext ntextntext
UDT**UDT** imageimage imageimage imageimage

* この型はネイティブでサポートされています。*This type is natively supported.

** UDT はユーザー定義型を示します。**UDT indicates a user defined type.

-V 80 を使用したエクスポートExporting using -V 80

-V80 スイッチを使用してデータを一括エクスポートする場合、nvarchar(max)varchar(max)varbinary(max) 、型のデータ、XML データ、およびネイティブ モードの UDT データは、以降のバージョンの既定である 8 バイトのプレフィックスではなく、 text image 、および ntextSQL Server 2005 (9.x)SQL Server 2005 (9.x) 型のデータと同様に、4 バイトのプレフィックス付きで格納されます。When you bulk export data by using the -V80 switch, nvarchar(max), varchar(max), varbinary(max), XML, and UDT data in native mode are stored with a 4-byte prefix, like text, image, and ntext data, rather than with an 8-byte prefix, which is the default for SQL Server 2005 (9.x)SQL Server 2005 (9.x) and later versions.

日付値のコピーCopying Date Values

bcp は ODBC 一括コピー API を使用します。bcp uses the ODBC bulk copy API. したがって、 SQL ServerSQL Serverbcp に日付値をインポートするには、ODBC の日付形式 (yyyy-mm-dd hh:mm:ss[ .f... ]) を使用します。Therefore, to import date values into SQL ServerSQL Server, bcp uses the ODBC date format (yyyy-mm-dd hh:mm:ss[.f...]).

bcp コマンドでは、 datetime 型と smalldatetime 型の値に使用される ODBC の既定の形式を使用して、文字形式のデータ ファイルがエクスポートされます。The bcp command exports character format data files using the ODBC default format for datetime and smalldatetime values. たとえば、日付 が含まれた datetime 12 Aug 1998 型の列は、文字列 1998-08-12 00:00:00.000としてデータ ファイルに一括コピーされます。For example, a datetime column containing the date 12 Aug 1998 is bulk copied to a data file as the character string 1998-08-12 00:00:00.000.

重要

bcp を使用してデータを smalldatetimeフィールドにインポートする場合は、秒の値が 00.000 になっていることを確認してください。それ以外の場合、この操作は失敗します。When importing data into a smalldatetime field using bcp, be sure the value for seconds is 00.000; otherwise the operation will fail. smalldatetime データ型には、最も近い "分" までの値のみが保持されます。The smalldatetime data type only holds values to the nearest minute. この場合、BULK INSERT および INSERT ... SELECT * FROM OPENROWSET(BULK...) は失敗しませんが、秒の値は切り捨てられます。BULK INSERT and INSERT ... SELECT * FROM OPENROWSET(BULK...) will not fail in this instance but will truncate the seconds value.

関連タスクRelated Tasks

一括インポートまたは一括エクスポートのデータ形式を使用するにはTo use data formats for bulk import or bulk export

参照See Also

bcp Utility bcp Utility
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
データ型 (Transact-SQL) Data Types (Transact-SQL)
SQL Server データベース エンジンの旧バージョンとの互換性 SQL Server Database Engine Backward Compatibility
CAST および CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)