Megosztás a következőn keresztül:


Unicode natív formátum használata adatok importálásához vagy exportálásához (SQL Server)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

A Unicode natív formátuma akkor hasznos, ha az adatokat át kell másolni az egyik Microsoft SQL Server-telepítésből egy másikba. A natív formátum használata a nem karakteradatokhoz időt takarít meg, mivel megszünteti az adattípusok felesleges átalakítását karakterformátummá és vissza. A Unicode karakterformátum használata minden karakteradat esetében megakadályozza a kiterjesztett karakterek elvesztését a különböző kódlapokat használó kiszolgálók közötti adattovábbítás során. A Unicode natív formátumú adatfájlokat bármilyen tömeges importálási módszerrel beolvashatja.

A Unicode natív formátuma az SQL Server több példánya közötti tömeges adattovábbításhoz ajánlott kiterjesztett vagy DBCS-karaktereket tartalmazó adatfájl használatával. Nemcharacter-adatok esetén a Unicode natív formátuma natív (adatbázis-) adattípusokat használ. Az olyan karakteradatok esetében, mint karakter, nchar, varchar, nvarchar, szöveg, varchar(max), nvarchar(max)és ntext, a Unicode natív formátuma Unicode karakteradat-formátumot használ.

A Unicode natív formátumú adatfájlban SQLVARIANT formátumban tárolt sql_variant adatok ugyanúgy működnek, mint egy natív formátumú adatfájlban, kivéve, hogy karakteres és varchar értékek nchar és nvarcharlesznek konvertálva, ami megduplázza az érintett oszlopokhoz szükséges tárterületet. Az eredeti metaadatok megmaradnak, és az értékek vissza lesznek alakítva az eredeti karakteres és varchar adattípusra, amikor tömegesen importálják őket egy táblaoszlopba.

A unicode natív formátum parancsbeállításai

Unicode natív formátumú adatokat importálhat egy táblába bcp, BULK INSERT vagy OPENROWSET BULK használatával.

  • Bcp-parancs vagy BULK INSERT utasítás esetén megadhatja az adatformátumot az utasításban.
  • OPENROWSET BULK utasítás esetén meg kell adnia az adatformátumot egy formátumfájlban.

A Unicode natív formátumát a következő parancsbeállítások támogatják:

Parancs Opció Leírás
bcp -N bcp A segédprogram a Unicode natív formátumot használja, amely natív (adatbázis-) adattípusokat használ az összes nemcharacter-adathoz, a Unicode karakteradat-formátumot pedig az összes karakterhez (char, nchar, varchar, nvarchar, text és ntext) tartozó adatokhoz.
BULK INSERT DATAFILETYPE ='widenative' Unicode natív formátumot használ az adatok tömeges importálásakor.
OPENROWSET Nincs adat. Formátumfájlt kell használnia

Jegyzet

Másik lehetőségként megadható a formázás mezőnkénti alapon egy formátumfájlban. További információ: Fájlok formázása adatok importálásához vagy exportálásához (SQL Server).

Példa tesztelési feltételekre

A jelen témakör példái a mintatáblán myWidenative és a formátumfájlon myWidenative.fmtalapulnak. Cserélje le a helyi fájlok elérési útjait a rendszerén lévő helyi fájl elérési utak valamelyikére.

Mintatábla

A következő szkript létrehoz egy tesztadatbázist, egy myWidenative nevű táblát, és feltölti a táblát néhány kezdeti értékkel. Hajtsa végre a következő Transact-SQL-t:

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;

Nem XML formátumú minta fájl

Az SQL Server kétféle formátumfájlt támogat: nem XML- és XML-formátumot. A nem XML formátum az SQL Server korábbi verziói által támogatott eredeti formátum. Részletes információkért tekintse át a Nem XML formátumú fájlok (SQL Server) használatát . Az alábbi parancs a bcp segédprogram használatával hoz létre egy nem xml formátumú fájlt, myWidenative.fmta myWidenativesémája alapján.

  • Ha bcp parancsot szeretne használni egy formátumfájl létrehozásához, adja meg a format argumentumot, és adatfájl elérési útja helyett használja a nul.
  • A formátumbeállításhoz szükség van a -f beállításra is.
  • c karakteradatok megadására szolgál
  • T megbízható kapcsolat megadására szolgál az integrált biztonság használatával.

A parancssorban adja meg a következő parancsokat:

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

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

Fontos

Győződjön meg arról, hogy a nem XML formátumú fájl egy kocsivissza\sor hírcsatornával végződik. Ellenkező esetben valószínűleg a következő hibaüzenet jelenik meg:

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

Példák

Az alábbi példák az adatbázist használják, és formázza a fent létrehozott fájlokat.

Adatok exportálása bcp és Unicode natív formátumban

A -N kapcsoló és OUT parancs.

Az ebben a példában létrehozott adatfájl minden további példában használatos lesz.

A parancssorban adja meg a következő parancsokat:

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

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

Adatok importálása formátumfájl nélkül bcp és Unicode natív formátumban

A -N kapcsoló és IN parancs.

A parancssorban adja meg a következő parancsokat:

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

Adatok importálása nem XML formátumú fájllal bcp és Unicode natív formátumban

A -N és -f kapcsolók és IN parancs.

A parancssorban adja meg a következő parancsokat:

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 -N

REM Review results is SSMS

A BULK INSERT és a Unicode natív formátum használata formátumfájl nélkül

Az DATAFILETYPE argumentum.

Hajtsa végre a következő Transact-SQL a Microsoft SQL Server Management Studióban (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;

TÖMEGES BESZÚRÁS és Unicode natív formátum használata nem XML formátumú fájllal

Az FORMATFILE argumentum.

Hajtsa végre a következő Transact-SQL a Microsoft SQL Server Management Studióban (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;

OPENROWSET és Unicode natív formátum használata nem XML formátumú fájllal

Az FORMATFILE argumentum.

Hajtsa végre a következő Transact-SQL a Microsoft SQL Server Management Studióban (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;

Adatformátumok használata tömeges importáláshoz vagy tömeges exportáláshoz: