以前のバージョンの SQL Server からのネイティブ形式データおよび文字形式データのインポート
SQL Server 2012 では、bcp を使用して、SQL Server 2000、SQL Server 2005、または SQL Server 2008 からネイティブ形式データおよび文字形式データを -V スイッチを指定してインポートすることができます。 -V スイッチを使用すると、SQL Server 2012 は指定された以前のバージョンの SQL Server のデータ型を使用し、データ ファイル形式はその以前のバージョンのものと同じになります。
データ ファイルに以前の SQL Server バージョンを指定するには、-V スイッチと次のいずれかの修飾子を使用します。
SQL Server バージョン |
修飾子 |
---|---|
SQL Server 2000 |
-V 80 |
SQL Server 2005 |
-V 90 |
SQL Server 2008 |
-V 100 |
SQLServer 2005 で導入されたデータ型の解釈
SQL Server 2005 以降のバージョンでは、いくつかの新しいデータ型がサポートされるようになりました。 以前の SQL Server バージョンに新しいデータ型をインポートする場合は、古い bcp クライアントで読み取ることが可能な形式でそのデータ型を格納する必要があります。 次の表では、以前のバージョンの SQL Server との互換性を維持するために、SQL Server 2005 の新しいデータ型がどのように変換されるかについて要約します。
SQL Server 2005 の新しいデータ型 |
バージョン 6x の互換性のあるデータ型 |
バージョン 70 の互換性のあるデータ型 |
バージョン 80 の互換性のあるデータ型 |
---|---|---|---|
bigint |
decimal |
decimal |
* |
sql_variant |
text |
nvarchar(4000) |
* |
varchar(max) |
text |
text |
text |
nvarchar(max) |
ntext |
ntext |
ntext |
varbinary(max) |
image |
image |
image |
XML |
ntext |
ntext |
ntext |
UDT1 |
image |
image |
image |
* この型はネイティブでサポートされています。
1 UDT はユーザー定義型を示します。
SQL Server 2005 以降のバージョンからのエクスポート
–V 80 スイッチを使用して SQL Server 2005 以降のバージョンからデータを一括エクスポートする場合、nvarchar(max) 型、varchar(max) 型、varbinary(max) 型のデータ、XML データ、およびネイティブ モードの UDT データは、SQL Server 2005 以降のバージョンの既定である 8 バイトのプレフィックスではなく、text 型、image 型、および ntext 型のデータと同様に、4 バイトのプレフィックスと共に格納されます。
日付値のコピー
bcp は ODBC 一括コピー API を使用します。 したがって、SQL Server に日付値をインポートするには、bcp で、ODBC の日付形式 (yyyy-mm-dd hh:mm:ss[.f...]) を使用します。
bcp コマンドでは、datetime 型と smalldatetime 型の値に使用される ODBC の既定の形式を使用して、文字形式のデータ ファイルがエクスポートされます。 たとえば、日付 12 Aug 1998 が含まれた datetime 型の列は、文字列 1998-08-12 00:00:00.000 としてデータ ファイルに一括コピーされます。
重要 |
---|
bcp を使用してデータを smalldatetime フィールドにインポートする場合は、秒の値が 00.000 になっていることを確認してください。それ以外の場合、この操作は失敗します。 smalldatetime データ型には、最も近い "分" までの値のみが保持されます。 この場合、BULK INSERT および INSERT ... SELECT * FROM OPENROWSET(BULK...) は失敗しませんが、秒の値は切り捨てられます。 |
関連タスク
一括インポートまたは一括エクスポートのデータ形式を使用するには
[Top]
関連項目
参照
CAST および CONVERT (Transact-SQL)