Verwenden des Unicode-Zeichenformats zum Importieren und Exportieren von Daten

Aktualisiert: 14. April 2006

Es wird empfohlen, für die Massenübertragung von Daten zwischen mehreren Instanzen von Microsoft SQL Server mithilfe einer Datendatei, die Sonderzeichen oder Zeichen aus Doppelbyte-Zeichensätzen (Double-Byte Character Set, DBCS) enthält, das Unicode-Zeichenformat zu verwenden. Mit dem Unicode-Zeichenformat können Daten von einem Server mithilfe einer Codepage exportiert werden, wenn sich diese Codepage von der Codepage unterscheidet, die der Client verwendet, der den Vorgang ausführt. In solchen Fällen bietet die Verwendung des Unicode-Zeichenformats folgende Vorteile:

  • Wenn es sich bei den Quell- und Zieldaten um Unicode-Datentypen handelt, bleiben bei Verwendung des Unicode-Zeichenformats alle Zeichendaten erhalten.
  • Wenn es sich bei den Quell- und Zieldaten nicht um Unicode-Datentypen handelt, wird durch die Verwendung des Unicode-Datenformats der Verlust von Sonderzeichen in Bezug auf die Quelldaten minimiert, die am Ziel nicht dargestellt werden können.

Datendateien im Unicode-Zeichenformat folgen den Konventionen für Unicode-Dateien. Die ersten zwei Bytes der Datei sind Hexadezimalzahlen (0xFFFE). Diese Bytes dienen als Markierungen für die Bytereihenfolge, in der angegeben wird, ob in der Datei das höherwertige Byte zuerst oder zuletzt gespeichert wird.

ms188289.note(de-de,SQL.90).gifWichtig:
Damit eine Formatdatei mit einer Datendatei mit Unicode-Zeichen verwendet werden kann, müssen alle Eingabefelder Unicode-Textzeichenfolgen sein (d. h., entweder Unicode-Zeichenfolgen einer festen Länge oder Unicode-Zeichenfolgen mit Abschlusszeichen).

Die sql_variant-Daten, die in einer Datendatei im Unicode-Zeichenformat gespeichert sind, verhalten sich wie Daten in einer Datendatei im Zeichenformat, außer dass die Daten als nchar-Daten und nicht als char-Daten gespeichert sind. Weitere Informationen zum Zeichenformat finden Sie unter Verwenden des Zeichenformats zum Importieren und Exportieren von Daten.

Wenn Sie andere Feld- und Zeilenabschlusszeichen als die standardmäßig durch das Unicode-Zeichenformat vorgegebenen verwenden möchten, informieren Sie sich unter Angeben von Feld- und Zeilenabschlusszeichen.

Befehlsoptionen für das Unicode-Zeichenformat

Sie können Daten im Unicode-Zeichenformat in eine Tabelle importieren, indem Sie bcp, BULK INSERT oder INSERT ... SELECT * FROM OPENROWSET(BULK...) verwenden. Bei einem bcp-Befehl oder einer BULK INSERT-Anweisung können Sie das Datenformat in der Befehlszeile angeben. Bei einer INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisung müssen Sie das Datenformat in einer Formatdatei angeben.

Das Unicode-Zeichenformat wird von den folgenden Befehlszeilenoptionen unterstützt:

Befehl Option Beschreibung

bcp

-w

Verwendet das Unicode-Zeichenformat

BULK INSERT

DATAFILETYPE ='widechar'

Verwendet das Unicode-Zeichenformat beim Massenimport von Daten

Weitere Informationen finden Sie unter bcp (Dienstprogramm), BULK INSERT (Transact-SQL) und OPENROWSET (Transact-SQL).

ms188289.note(de-de,SQL.90).gifHinweis:
Stattdessen können Sie die Formatierung auch auf Feldbasis in einer Formatdatei angeben. Weitere Informationen finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten.

Beispiele

Die folgenden Beispiele veranschaulichen den Massenexport von Unicode-Zeichendaten mithilfe von bcp und den Massenimport derselben Daten mithilfe von BULK INSERT.

Beispieltabelle

Für die Beispiele muss in der AdventureWorks-Beispieldatenbank unter dem dbo-Schema eine Tabelle namens myTestUniCharData erstellt werden. Bevor Sie die Beispiele ausführen können, müssen Sie diese Tabelle erstellen. Führen Sie Folgendes aus, um diese Tabelle im SQL Server Management Studio-Abfrage-Editor zu erstellen:

USE AdventureWorks;
GO
CREATE TABLE myTestUniCharData (
   Col1 smallint,
   Col2 nvarchar(50),
   Col3 nvarchar(50)
   ); 

Um diese Tabelle aufzufüllen und den sich ergebenden Inhalt anzuzeigen, führen Sie die folgenden Anweisungen aus:

INSERT INTO myTestUniCharData(Col1,Col2,Col3)
   VALUES(1,'DataField2','DataField3');
INSERT INTO myTestUniCharData(Col1,Col2,Col3)
   VALUES(2,'DataField2','DataField3');
GO
SELECT Col1,Col2,Col3 FROM myTestUniCharData

Verwenden von bcp für den Massenexport von Unicode-Zeichendaten

Um Daten aus der Tabelle in die Datendatei zu exportieren, verwenden Sie bcp zusammen mit der out-Option und den folgenden Qualifizierern:

Qualifizierer

Beschreibung

-w

Gibt das Unicode-Zeichenformat an

-t,

Gibt ein Komma (,) als Feldabschlusszeichen an

ms188289.note(de-de,SQL.90).gifHinweis:

Das Standard-Feldabschlusszeichen ist das Tabulator-Unicode-Zeichen (\t). Weitere Informationen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen.

-T

Gibt an, dass das Dienstprogramm bcp die Verbindung mit SQL Server mithilfe integrierter Sicherheit über eine vertrauenswürdige Verbindung herstellt. Wenn -T nicht angegeben ist, müssen Sie -U und -P angeben, um sich erfolgreich anmelden zu können.

Im folgenden Beispiel wird ein Massenexport von Daten im Unicode-Zeichenformat aus der myTestUniCharData-Tabelle in eine neue Datendatei ausgeführt. Diese Datendatei heißt myTestUniCharData-w.Dat und verwendet das Komma (,) als Feldabschlusszeichen. Geben Sie an der Eingabeaufforderung von Microsoft Windows Folgendes ein:

bcp AdventureWorks..myTestUniCharData out C:\myTestUniCharData-w.Dat -w -t, -T

Verwenden von BULK INSERT für den Massenimport von Unicode-Zeichendaten

Im folgenden Beispiel wird BULK INSERT zum Importieren der Daten aus der Datendatei myTestUniCharData-w.Dat in die myTestUniCharData-Tabelle verwendet. Das nicht standardmäßige Feldabschlusszeichen (,) muss in der Anweisung deklariert werden. Führen Sie im SQL Server Management Studio-Abfrage-Editor Folgendes aus:

USE AdventureWorks;
GO
BULK INSERT myTestUniCharData 
   FROM 'C:\myTestUniCharData-w.Dat' 
   WITH (
      DATAFILETYPE='widechar',
      FIELDTERMINATOR=','
   ); 
GO
SELECT Col1,Col2,Col3 FROM myTestUniCharData;
GO

Siehe auch

Konzepte

Arbeiten mit Unicode-Daten

Andere Ressourcen

bcp (Dienstprogramm)
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Datentypen (Transact-SQL)
Internationale Überlegungen zu Datenbanken und Datenbankmodulanwendungen
ServerBCPDataFileType Property

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Neuer Inhalt:
  • Ein Hinweis zu den Anforderungen für die Verwendung einer Formatdatei zusammen mit einer Datendatei mit Unicode-Zeichen wurde hinzugefügt.