Verwenden des Zeichenformats zum Importieren und Exportieren von Daten

Das Zeichenformat wird für den Massenexport von Daten in eine Textdatei empfohlen, die in einem anderen Programm verwendet werden sollen, oder für den Massenimport von Daten aus einer Textdatei, die von einem anderen Programm generiert werden.

ms190919.note(de-de,SQL.90).gifHinweis:
Wenn Sie Daten zwischen Instanzen von Microsoft SQL Server massenübertragen und die Datendatei Unicode-Zeichendaten, aber keine Sonderzeichen oder DBCS-Zeichen enthält, sollten Sie das Unicode-Zeichenformat verwenden. Weitere Informationen finden Sie unter Verwenden des Unicode-Zeichenformats zum Importieren und Exportieren von Daten.

Das Zeichenformat verwendet das Zeichendatenformat für alle Spalten. Es ist nützlich, Informationen im Zeichenformat zu speichern, wenn Sie die Daten mit einem anderen Programm, z. B. als Kalkulationstabelle, verwenden, oder die Daten aus einer Datenbank eines anderen Herstellers wie z. B. Oracle in eine Instanz von SQL Server kopiert werden müssen.

Überlegungen zum Verwenden des Zeichenformats

Beim Verwenden des Zeichenformats sollten Sie Folgendes berücksichtigen:

  • Standardmäßig trennt das Dienstprogramm bcp die Zeichendatenfelder mit einem Tabstoppzeichen und schließt den Datensatz mit einem Neue-Zeile-Zeichen ab. Weitere Informationen zum Angeben alternativer Abschlusszeichen finden Sie unter Angeben von Feld- und Zeilenabschlusszeichen.

  • Standardmäßig werden vor einem Massenexport oder -import von Daten im Zeichenmodus die folgenden Konvertierungen ausgeführt:

    Richtung des Massenvorgangs Konvertierung

    Exportieren

    Konvertiert Daten in die Zeichendarstellung. Wenn dies explizit angefordert wird, werden die Daten in die angeforderte Codepage für Zeichenspalten konvertiert. Wenn keine Codepage angegeben wird, werden die Zeichendaten mithilfe der OEM-Codepage des Clientcomputers konvertiert.

    Importieren

    Konvertiert Zeichendaten bei Bedarf in die systemeigene Darstellung und übersetzt die Zeichendaten von der Codepage des Clients in die Codepage der Zielspalte(n).

  • Um den Verlust von Sonderzeichen zu verhindern, verwenden Sie das Unicode-Zeichenformat, oder geben Sie eine Codepage an. Weitere Informationen zum Verwenden einer Codepage finden Sie unter Kopieren von Daten zwischen unterschiedlichen Sortierungen.

  • Alle sql_variant-Daten, die in einer Zeichenformatdatei gespeichert sind, werden ohne Metadaten gespeichert. Alle Datenwerte werden gemäß den Regeln der impliziten Datenkonvertierung in das char-Format konvertiert. Beim Importieren in eine sql_variant-Spalte werden die Daten als char-Datentyp importiert. Beim Importieren in eine Spalte mit einem anderen Datentyp als sql_variant werden die Daten von char mithilfe der impliziten Konvertierung konvertiert. Weitere Informationen zur Datenkonvertierung finden Sie unter Datentypkonvertierung (Datenbankmodul).

  • Das Dienstprogramm bcp exportiert money-Werte in Datendateien im Zeichenformat mit vier Stellen nach dem Dezimaltrennzeichen und ohne Symbole für die Zifferngruppierung, wie z. B. Kommas. So wird z. B. eine money-Spalte mit dem Wert 1,234,567.123456 beim Massenkopieren in eine Datendatei als die Zeichenfolge 1234567.1235 massenexportiert.

Befehlsoptionen für das Zeichenformat

Sie können Daten im 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 der INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisung müssen Sie das Datenformat in einer Formatdatei angeben.

Das Zeichenformat wird von den folgenden Befehlszeilenoptionen unterstützt:

Befehl Option Beschreibung

bcp

-c

Bewirkt, dass das Dienstprogramm bcp Zeichendaten verwendet.1

BULK INSERT

DATAFILETYPE ='char'

Verwendet das Zeichenformat beim Massenimport von Daten.

1 Um Zeichendaten (-c) in ein Format zu laden, das mit früheren Versionen von SQL Server-Clients kompatibel ist, verwenden Sie den Schalter -V. Weitere Informationen finden Sie unter Importieren von Daten aus früheren SQL Server-Versionen im systemeigenen Format oder im Zeichenformat.

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

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

Beispiele

Die folgenden Beispiele veranschaulichen, wie Zeichendaten mithilfe von bcp massenexportiert und die gleichen Daten mithilfe von BULK INSERT massenimportiert werden.

Beispieltabelle

Für diese Beispiele ist es erforderlich, dass eine Tabelle mit dem Namen myTestCharData in der Beispieldatenbank AdventureWorks im dbo-Schema erstellt wird. Bevor Sie die Beispiele ausführen können, müssen Sie diese Tabelle erstellen. Zum Erstellen dieser Tabelle führen Sie im Abfrage-Editor von SQL Server Management Studio folgende Schritte aus:

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

Führen Sie zum Auffüllen dieser Tabelle und zum Anzeigen der resultierenden Inhalte die folgenden Anweisungen aus:

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

Verwenden von bcp für den Massenexport von Zeichendaten

Verwenden Sie zum Exportieren von Daten aus der Tabelle in die Datendatei bcp mit der Option out und den folgenden Qualifizierern:

Qualifizierer

Beschreibung

-c

Gibt das Zeichenformat an.

-t,

Gibt ein Komma (,) als Feldabschlusszeichen an.

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

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

-T

Gibt an, dass das Dienstprogramm bcp eine Verbindung mit SQL Server mit einer vertrauenswürdigen Verbindung mithilfe von integrierter Sicherheit herstellt. Wird -T nicht angegeben, müssen Sie für eine erfolgreiche Anmeldung -U und -P angeben.

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

bcp AdventureWorks..myTestCharData out C:\myTestCharData-c.Dat -c -t, -T

Verwenden von BULK INSERT für den Massenimport von Zeichendaten

Das folgende Beispiel verwendet BULK INSERT, um die Daten in der Datendatei myTestCharData-c.Dat in die myTestCharData-Tabelle zu importieren. Führen Sie im Abfrage-Editor von SQL Server Management Studio Folgendes aus:

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

Siehe auch

Konzepte

Kopieren von Daten zwischen unterschiedlichen Sortierungen
Importieren von Daten aus früheren SQL Server-Versionen im systemeigenen Format oder im Zeichenformat

Andere Ressourcen

bcp (Dienstprogramm)
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Datentypen (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005