Verwenden des systemeigenen Unicode-Formats zum Importieren oder Exportieren von Daten (SQL Server)Use Unicode Native Format to Import or Export Data (SQL Server)

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Das native Unicode-Format ist hilfreich, wenn Informationen von einer Installation von MicrosoftMicrosoft SQL ServerSQL Server in eine andere kopiert werden müssen.Unicode native format is helpful when information must be copied from one MicrosoftMicrosoft SQL ServerSQL Server installation to another. Durch die Verwendung des systemeigenen Formats bei nicht auf Zeichen basierenden Daten kann Zeit eingespart werden, da die unnötige Konvertierung der Datentypen in und aus dem Zeichenformat entfällt.The use of native format for noncharacter data saves time, eliminating unnecessary conversion of data types to and from character format. Die Verwendung des Unicode-Zeichenformats für alle Zeichendaten verhindert, dass es zum Verlust von erweiterten Zeichen beim Massenübertragen von Daten zwischen Servern mit unterschiedlichen Codepages kommt.The use of Unicode character format for all character data prevents loss of any extended characters during bulk transfer of data between servers using different code pages. Eine Datendatei im systemeigenen Unicode-Format kann von jeder Massenimportmethode gelesen werden.A data file in Unicode native format can be read by any bulk-import method.

Das systemeigene Unicode-Format wird für die Massenübertragung von Daten zwischen mehreren Instanzen von SQL ServerSQL Server mithilfe einer Datendatei, die Sonderzeichen oder DBCS-Zeichen enthält, empfohlen.Unicode native format is recommended for the bulk transfer of data between multiple instances of SQL ServerSQL Server by using a data file that contains extended or DBCS characters. Für nicht auf Zeichen basierende Daten verwendet das systemeigene Unicode-Format systemeigene (Datenbank-)Datentypen.For noncharacter data, Unicode native format uses native (database) data types. Bei Zeichendaten wie char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max)und ntextverwendet das native Unicode-Format das Unicode-Zeichendatenformat.For character data, such as char, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max), and ntext, the Unicode native format uses Unicode character data format.

Die sql_variant -Daten, die in einer Datendatei im nativen Unicode-Format als SQLVARIANT gespeichert werden, funktionieren auf die gleiche Weise wie in einer Datendatei im nativen Format, mit der Ausnahme, dass Werte der Typen char und varchar in nchar und nvarcharkonvertiert werden. Hierdurch verdoppelt sich der für die entsprechenden Spalten benötigte Speicherplatz.The sql_variant data that is stored as a SQLVARIANT in a Unicode native-format data file operates in the same manner as it does in a native-format data file, except that char and varchar values are converted to nchar and nvarchar, which doubles the amount of storage required for the affected columns. Die ursprünglichen Metadaten bleiben erhalten, und die Werte werden zurück in die ursprünglichen Datentypen char und varchar konvertiert, wenn sie in eine Tabellenspalte massenimportiert werden.The original metadata is preserved, and the values are converted back to their original char and varchar data type when bulk imported into a table column.

In diesem Thema:In this Topic:
Befehlsoptionen für das systemeigene Unicode-FormatCommand Options for Unicode Native Format
BeispieltestbedingungenExample Test Conditions
 ● Beispieltabelle ● Sample Table
 ● Beispiel einer Nicht-XML-Formatdatei ● Sample Non-XML Format File
BeispieleExamples
 ● Verwenden von bcp und des nativen Unicode-Zeichenformats zum Exportieren von Daten ● Using bcp and Unicode Native Format to Export Data
 ● Verwenden von bcp und des nativen Unicode-Zeichenformats zum Importieren von Daten ohne eine Formatdatei ● Using bcp and Unicode Native Format to Import Data without a Format File
 ● Verwenden von bcp und des nativen Unicode-Zeichenformats zum Importieren von Daten mit einer Nicht-XML-Formatdatei ● Using bcp and Unicode Native Format to Import Data with a Non-XML Format File
 ● Verwenden von BULK INSERT und des nativen Unicode-Zeichenformats ohne eine Formatdatei ● Using BULK INSERT and Unicode Native Format without a Format File
 ● Verwenden von BULK INSERT und des nativen Unicode-Zeichenformats mit einer Nicht-XML-Formatdatei ● Using BULK INSERT and Unicode Native Format with a Non-XML Format File
 ● Verwenden von OPENROWSET und des nativen Unicode-Zeichenformats mit einer Nicht-XML-Formatdatei ● Using OPENROWSET and Unicode Native Format with a Non-XML Format File
Verwandte AufgabenRelated Tasks

Befehlsoptionen für das systemeigene Unicode-FormatCommand Options for Unicode Native Format

Sie können Daten im nativen Unicode-Format in eine Tabelle importieren, indem Sie folgende Anweisungen verwenden: bcp, BULK INSERT oder INSERT ... SELECT * FROM OPENROWSET(BULK...). Für einen bcp -Befehl oder eine BULK INSERT -Anweisung können Sie das Datenformat in der Anweisung angeben.You can import Unicode native format data into a table using bcp, BULK INSERT or INSERT ... SELECT * FROM OPENROWSET(BULK...). For a bcp command or BULK INSERT statement, you can specify the data format in the statement. Für eine INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisung müssen Sie das Datenformat in einer Formatdatei angeben.For an INSERT ... SELECT * FROM OPENROWSET(BULK...) statement, you must specify the data format in a format file.

Das native Unicode-Format wird durch die folgenden Befehlsoptionen unterstützt:Unicode native format is supported by the following command options:

BefehlCommand OptionOption und BeschreibungDescription
bcpbcp -N-N Bewirkt, dass das Hilfsprogramm bcp das native Unicode-Format verwendet, welches das native (Datenbank-)Datentypen für alle nicht auf Zeichen basierenden Daten und das Unicode-Zeichendatenformat für alle Zeichendaten (char, nchar, varchar, nvarchar, textund ntext) verwendet.Causes the bcp utility to use the Unicode native format, which uses native (database) data types for all noncharacter data and Unicode character data format for all character (char, nchar, varchar, nvarchar, text, and ntext) data.
BULK INSERTBULK INSERT DATAFILETYPE ='widenative'DATAFILETYPE ='widenative' Verwendet das native Unicode-Format beim Massenimportieren von DatenUses Unicode native format when bulk importing data.
OPENROWSETOPENROWSET N/A Muss eine Formatdatei verwendenMust use a format file

Hinweis

Alternativ können Sie die Formatierung pro Feld in einer Formatdatei angeben.Alternatively, you can specify formatting on a per-field basis in a format file. Weitere Informationen finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten (SQL Server)erforderlich.For more information, see Format Files for Importing or Exporting Data (SQL Server).

BeispieltestbedingungenExample Test Conditions

Die in diesem Thema beschriebenen Beispiele basieren auf einer Tabelle und einer Formatdatei, die nachstehend definiert werden.The examples in this topic are based on the table, and format file defined below.

BeispieltabelleSample Table

Das folgende Skript erstellt eine Testdatenbank sowie eine Tabelle namens myWidenative und füllt die Tabelle mit einigen ursprünglichen Werten auf.The script below creates a test database, a table named myWidenative and populates the table with some initial values. Führen Sie den folgenden Transact-SQL-Befehl in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS) aus:Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

CREATE DATABASE TestDatabase;
GO

USE TestDatabase;
CREATE TABLE dbo.myWidenative ( 
    PersonID smallint NOT NULL,
    FirstName nvarchar(25) NOT NULL,
    LastName nvarchar(30) NOT NULL,
    BirthDate date,
    AnnualSalary money
);

-- Populate table
INSERT TestDatabase.dbo.myWidenative
VALUES 
(1, N'ϴAnthony', N'Grosse', '02-23-1980', 65000.00),
(2, N'❤Alica', N'Fatnowna', '11-14-1963', 45000.00),
(3, N'☎Stella', N'Rossenhain', '03-02-1992', 120000.00);

-- Review Data
SELECT * FROM TestDatabase.dbo.myWidenative;

Beispiel einer Nicht-XML-FormatdateiSample Non-XML Format File

SQL Server unterstützt zwei Typen von Formatdateien: Nicht-XML- und XML-Format.SQL Server support two types of format file: non-XML format and XML format. Nicht-XML ist das ursprüngliche Format, das von früheren Versionen von SQL Server unterstützt wird.The non-XML format is the original format that is supported by earlier versions of SQL Server. Ausführliche Informationen finden Sie unter Nicht-XML-Formatdateien (SQL Server) .Please review Non-XML Format Files (SQL Server) for detailed information. Im folgenden Befehl wird das bcp-Hilfsprogramm verwendet, um die Nicht-XML-Formatdatei myWidenative.fmtzu erstellen, die auf dem Schema von myWidenativebasiert.The following command will use the bcp utility to generate a non-xml format file, myWidenative.fmt, based on the schema of myWidenative. Geben Sie bei der Ausführung eines bcp -Befehls zum Erstellen einer Formatdatei das format -Argument an, und verwenden Sie nul anstatt eines Datendateipfads.To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. Die Option „format“ erfordert außerdem die Option -f .The format option also requires the -f option. Zusätzlich wird in diesem Beispiel der Qualifizierer c verwendet, um Zeichendaten anzugeben, und T , um eine vertrauenswürdige Verbindung anzugeben, für die integrierte Sicherheit verwendet wird.In addition, for this example, the qualifier c is used to specify character data, and T is used to specify a trusted connection using integrated security. Geben Sie folgende Befehle an der Eingabeaufforderung ein:At a command prompt, enter the following commands:

bcp TestDatabase.dbo.myWidenative format nul -f D:\BCP\myWidenative.fmt -T -N

REM Review file
Notepad D:\BCP\myWidenative.fmt

Wichtig

Stellen Sie sicher, dass Ihre Nicht-XML-Formatdatei mit einem Wagenrücklauf/Zeilenvorschub endet.Ensure your non-XML format file ends with a carriage return\line feed. Andernfalls wird Ihnen möglicherweise die folgende Fehlermeldung angezeigt:Otherwise you will likely receive the following error message:

SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file

BeispieleExamples

In dem folgenden Beispiel werden die Datenbank und die Formatdateien verwendet, die oben erstellt wurden.The examples below use the database, and format files created above.

Verwenden von bcp und des nativen Unicode-Zeichenformats zum Exportieren von DatenUsing bcp and Unicode Native Format to Export Data

Der Schalter -N und der OUT -Befehl.-N switch and OUT command. Hinweis: Die in diesem Beispiel erstellte Datendatei wird auch in allen nachfolgenden Beispielen verwendet.Note: the data file created in this example will be used in all subsequent examples. Geben Sie folgende Befehle an der Eingabeaufforderung ein:At a command prompt, enter the following commands:

bcp TestDatabase.dbo.myWidenative OUT D:\BCP\myWidenative.bcp -T -N

REM Review results
NOTEPAD D:\BCP\myWidenative.bcp

Verwenden von bcp und des nativen Unicode-Zeichenformats zum Importieren von Daten ohne eine FormatdateiUsing bcp and Unicode Native Format to Import Data without a Format File

Der Schalter -N und der IN -Befehl.-N switch and IN command. Geben Sie folgende Befehle an der Eingabeaufforderung ein:At a command prompt, enter the following commands:

REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidenative;"

REM Import data
bcp TestDatabase.dbo.myWidenative IN D:\BCP\myWidenative.bcp -T -N

REM Review results is SSMS

Verwenden von bcp und des nativen Unicode-Zeichenformats zum Importieren von Daten mit einer Nicht-XML-FormatdateiUsing bcp and Unicode Native Format to Import Data with a Non-XML Format File

Die Schalter -N und -f switches und IN commund.-N and -f switches and IN command. Geben Sie folgende Befehle an der Eingabeaufforderung ein:At a command prompt, enter the following commands:

REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidenative;"

REM Import data
bcp TestDatabase.dbo.myWidenative IN D:\BCP\myWidenative.bcp -f D:\BCP\myWidenative.fmt -T

REM Review results is SSMS

Verwenden von BULK INSERT und des nativen Unicode-Zeichenformats ohne eine FormatdateiUsing BULK INSERT and Unicode Native Format without a Format File

DATAFILETYPE -Argument.DATAFILETYPE argument. Führen Sie den folgenden Transact-SQL-Befehl in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS) aus:Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
BULK INSERT TestDatabase.dbo.myWidenative
    FROM 'D:\BCP\myWidenative.bcp'
    WITH (
        DATAFILETYPE = 'widenative'
        );

-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;

Verwenden von BULK INSERT und des nativen Unicode-Zeichenformats mit einer Nicht-XML-FormatdateiUsing BULK INSERT and Unicode Native Format with a Non-XML Format File

ArgumentFORMATFILE .FORMATFILE argument. Führen Sie den folgenden Transact-SQL-Befehl in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS) aus:Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

TRUNCATE TABLE TestDatabase.dbo.myWidenative; -- for testing
BULK INSERT TestDatabase.dbo.myWidenative
   FROM 'D:\BCP\myWidenative.bcp'
   WITH (
        FORMATFILE = 'D:\BCP\myWidenative.fmt'
        );

-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;

Verwenden von OPENROWSET und des nativen Unicode-Zeichenformats mit einer Nicht-XML-FormatdateiUsing OPENROWSET and Unicode Native Format with a Non-XML Format File

ArgumentFORMATFILE .FORMATFILE argument. Führen Sie den folgenden Transact-SQL-Befehl in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS) aus:Execute the following Transact-SQL in Microsoft SQL Server Management StudioSQL Server Management Studio (SSMS):

TRUNCATE TABLE TestDatabase.dbo.myWidenative;  -- for testing
INSERT INTO TestDatabase.dbo.myWidenative
    SELECT *
    FROM OPENROWSET (
        BULK 'D:\BCP\myWidenative.bcp', 
        FORMATFILE = 'D:\BCP\myWidenative.fmt'  
        ) AS t1;

-- review results
SELECT * FROM TestDatabase.dbo.myWidenative;

Verwandte AufgabenRelated Tasks

So verwenden Sie Datenformate für Massenimport oder MassenexportTo use data formats for bulk import or bulk export

Weitere InformationenSee Also

bcp Utility bcp Utility
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
Datentypen (Transact-SQL)Data Types (Transact-SQL)