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)

In SQL Server 2014 (12.x) und höher können Siebcp verwenden, um systemeigene und Zeichenformatdaten 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) mithilfe der Option -V zu importieren. Der Schalter -V veranlasst SQL Server, Datentypen aus der angegebenen früheren Version von SQL Server zu 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 Server kompatibel sind.

Neue Datentypen in SQL Server 2005 Kompatible Datentypen in Version 6x Kompatible Datentypen in Version 70 Kompatible Datentypen in Version 80
bigint Dezimalzahl Dezimalzahl *
sql_variant text nvarchar(4000) *
varchar(max) text text text
nvarchar(max) ntext ntext ntext
varbinary(max) Abbildung Abbildung Abbildung
XML ntext ntext ntext
UDT** Abbildung Abbildung Abbildung

*Dieser Typ wird nativ unterstützt.

**UDT gibt einen benutzerdefinierten Typ an.

Exportieren mit -V 80

Wenn Sie Daten mithilfe des Schalters -V80 per Massenexport exportieren, werden Daten vom Typ nvarchar(max), varchar(max), varbinary(max), XML und UDT im nativen Modus wie Daten vom Typ text, image und ntext mit einem 4-Byte-Präfix gespeichert und nicht mit einem 8-Byte-Präfix, das für SQL Server 2005 (9.x) und spätere Versionen der Standard ist.

Kopieren von Datumswerten

bcp verwendet die ODBC-Massenkopier-API. Deshalb verwendet bcp zum Importieren von Datumswerten in SQL Server das ODBC-Datumsformat (jjjj-mm-tthh:mm:ss[.f...]).

Der Befehl bcp exportiert Datendateien im Zeichenformat unter Verwendung 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 speichert nur minutengenaue Werte. BULK INSERT und INSERT ... SELECT * FROM OPENROWSET(BULK...) schlägt in dieser Instanz nicht fehl, schneidet jedoch den Sekundenwert ab.

Verwandte Aufgaben

So verwenden Sie Datenformate für Massenimport oder Massenexport

Siehe auch

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