Importieren von Daten aus früheren SQL Server-Versionen im nativen Format oder im Zeichenformat

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Ab SQL Server 2014 (12.x) Sie können bcp verwenden, um daten aus SQL Server 2000 (8.x), SQL Server 2005 (9.x), SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x) oder SQL Server 2012 (11.x) zu importieren. Wechseln. Der Schalter -V veranlasst SQL Server , Datentypen aus der angegebenen früheren Version von SQL Serverzu verwenden. Zudem entspricht das Datendateiformat dem Format dieser früheren Version.

Um eine frühere Version von SQL Server für eine Datendatei anzugeben, verwenden Sie den Schalter -V mit einem der folgenden Qualifizierer:

SQL Server-Version Qualifizierer
SQL Server 2000 (8.x) -V80
SQL Server 2005 (9.x) -V90
SQL Server 2008 (10.0.x) -V100
SQL Server 2012 (11.x) -V 110

Interpretation von Datentypen

SQL Server 2005 (9.x) und höhere Versionen bieten Unterstützung für einige neue Typen. Beim Importieren eines neuen Datentyps aus einer früheren Version von SQL Server , muss der Dateityp in einem Format gespeichert sein, das von den älteren bcp -Clients gelesen werden kann. In der folgenden Tabelle finden Sie eine Übersicht, wie die neuen Datentypen konvertiert werden, damit sie mit den früheren Versionen von SQL Serverkompatibel sind.

Neue Datentypen in SQL Server 2005 Kompatible Datentypen in Version 6x Kompatible Datentypen in Version 70 Kompatible Datentypen in Version 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
UDT** image image image

*Dieser Typ wird nativ unterstützt.

**UDT gibt einen benutzerdefinierten Typ an.

Exportieren mit -V 80

Bei einem Massenexport von Daten mithilfe des Switch -V80 werden Daten vom Typ nvarchar(max) , varchar(max) , varbinary(max) , XML und UDT – wie Daten vom Typ text, image und ntext – anstatt mit einem 8-Byte-Präfix mit einem 4-Byte-Präfix im einheitlichen Modus gespeichert. Dies ist der Standardwert für SQL Server 2005 (9.x) und höhere Versionen.

Kopieren von Datumswerten

Vonbcp wird die ODBC-API für das Massenkopieren verwendet. Deshalb verwendet SQL Serverbcp zum Importieren von Datumswerten in das ODBC-Datumsformat (jjjj-mm-tt hh:mm:ss[ .f... ]).

Der Befehl bcp exportiert Datendateien im Zeichenformat immer mithilfe des ODBC-Standardformats für datetime - und smalldatetime -Werte. So wird beispielsweise eine datetime -Spalte mit dem Datum 12 Aug 1998 beim Massenkopieren in eine Datendatei als Zeichenfolge 1998-08-12 00:00:00.000übertragen.

Wichtig

Achten Sie beim Importieren von Daten mit bcp in ein smalldatetime-Feld darauf, dass der Wert für Sekunden 00.000 ist; andernfalls ruft der Vorgang einen Fehler hervor. Der smalldatetime -Datentyp kann nur Werte beinhalten, die auf die volle Minute gerundet sind. BULK INSERT und INSERT ... SELECT * FROM OPENROWSET(BULK...) schlagen in diesem Fall nicht fehl, schneiden jedoch den Sekundenwert ab.

Related Tasks

So verwenden Sie Datenformate für Massenimport oder Massenexport

Weitere Informationen

bcp (Hilfsprogramm)
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Datentypen (Transact-SQL)
Abwärtskompatibilität der SQL Server-Datenbank-Engine
CAST und CONVERT (Transact-SQL)