Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Kezelt Példány
Azure Synapse Analytics
Analytics Platform rendszer (PDW)
Microsoft Fabric Raktár
A karakterformátum akkor ajánlott, ha adatokat tömegesen exportál egy másik programban használni kívánt szövegfájlba, vagy ha egy másik program által létrehozott szövegfájlból tömegesen importál adatokat.
A karakterformátum az összes oszlop karakteradat-formátumát használja. Az adatok karakterformátumban való tárolása akkor hasznos, ha az adatokat egy másik programmal, például egy számolótáblával használják, vagy ha az adatokat át kell másolni egy SQL Server-példányba egy másik adatbázis-gyártótól, például az Oracle-től.
Jegyzet
Ha tömegesen továbbít adatokat az SQL Server példányai között, és az adatfájl Unicode karakteradatokat tartalmaz, de nem tartalmaz kiterjesztett vagy DBCS karaktereket, használja a Unicode karakterformátumot. További információ: Adatok importálása vagy exportálása Unicode karakterformátummal (SQL Server).
A karakterformátum használatának szempontjai
A karakterformátum használatakor vegye figyelembe a következő szempontokat:
Alapértelmezés szerint a bcp segédprogram elválasztja a karakteradat mezőket a tabulátor karakterrel, és újsor karakterrel lezárja a rekordokat. Az alternatív terminátorok megadásáról további információt a mező- és sor-terminátorok (SQL Server) megadása című témakörben talál.
Alapértelmezés szerint a karaktermódú adatok tömeges exportálása vagy importálása előtt a következő átalakítások lesznek végrehajtva:
A tömeges művelet iránya Konverzió Kivitel Az adatokat karakterábrázolássá alakítja. Ha kifejezetten kérik, az adatok a karakteroszlopok kért kódlapjára lesznek konvertálva. Ha nincs megadva kódlap, a karakteradatok az ügyfélszámítógép OEM-kódlapjának használatával lesznek konvertálva. Importál Szükség esetén natív ábrázolásúvá alakítja a karakteradatokat, és lefordítja a karakteradatokat az ügyfél kódlapjáról egy vagy több céloszlop kódlapjára. Ha meg szeretné akadályozni a kiterjesztett karakterek elvesztését az átalakítás során, használjon Unicode karakterformátumot, vagy adjon meg egy kódlapot.
A karakterformátumú fájlban tárolt sql_variant adatok metaadatok nélkül vannak tárolva. Minden adatérték karakteres formátumra lesz konvertálva az implicit adatkonvertálás szabályainak megfelelően. Amikor egy sql_variant oszlopba importálja az adatokat, az adatok karakterkéntlesznek importálva. Ha nem sql_variantadattípusú oszlopba importálja, az adatok implicit átalakítással konvertálódnak karakterből. Az adatkonvertálásról további információt Adattípus-átalakítás (adatbázismotor)című témakörben talál.
A bcp segédprogram a pénzösszegeket értékekként exportálja karakterformátumú adatfájlok formájában, amelyek a tizedesvessző után négy számjegyet tartalmaznak, és nem tartalmaznak számcsoport-elválasztó szimbólumokat, például a vesszőket. Például a értéket tartalmazó
1,234,567.123456oszlop tömegesen exportálódik egy adatfájlba1234567.1235karaktersztringként.
A karakterformátum parancsbeállításai
A karakterformázási adatokat bcp, BULK INSERT (Transact-SQL), vagy OPENROWSET (BULK) használatával importálhatja egy táblába. Egy bcp parancs vagy BULK INSERT (Transact-SQL) utasítás esetében 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 karakterformátumot a következő parancsbeállítások támogatják:
| Parancs | Opció | Leírás |
|---|---|---|
bcp |
-c |
A bcp segédprogram karakteradatokat használ. 1 |
BULK INSERT |
DATAFILETYPE ='char' |
Az adatok tömeges importálásakor használjon karakterformátumot. |
OPENROWSET |
Nincs adat. | Formátumfájlt kell használnia |
1 A karakteradatok (-c) az SQL Server-ügyfelek korábbi verzióival kompatibilis formátumba való betöltéséhez használja a kapcsolót -V . További információ: Natív és karakterformátumú adatok importálása az SQL Server korábbi verzióiból.
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 cikkben szereplő példák a következő táblázaton és formátumfájlon alapulnak.
Mintatábla
A következő szkript létrehoz egy tesztadatbázist, egy myChar 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 a Microsoft SQL Server Management Studióban (SSMS):
CREATE DATABASE TestDatabase;
GO
USE TestDatabase;
CREATE TABLE dbo.myChar
(
PersonID SMALLINT NOT NULL,
FirstName VARCHAR (25) NOT NULL,
LastName VARCHAR (30) NOT NULL,
BirthDate DATE,
AnnualSalary MONEY
);
-- Populate table
INSERT TestDatabase.dbo.myChar
VALUES (1, 'Anthony', 'Grosse', '1980-02-23', 65000.00),
(2, 'Alica', 'Fatnowna', '1963-11-14', 45000.00),
(3, 'Stella', 'Rossenhain', '1992-03-02', 120000.00);
-- Review data
SELECT * FROM TestDatabase.dbo.myChar;
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. További információ: Nem XML formátumú fájlok használata (SQL Server). Az alábbi parancs a bcp segédprogram használatával hoz létre egy nem XML formátumú fájlt, myChar.fmta myCharsé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. Ezen kívül ebben a példában a minősítő c karakteradatok megadására, T pedig megbízható kapcsolat megadására szolgál az integrált biztonság használatával.
A parancssorban adja meg a következő parancsot:
bcp TestDatabase.dbo.myChar format nul -f D:\BCP\myChar.fmt -T -c
REM Review file
Notepad D:\BCP\myChar.fmt
Fontos
Győződjön meg arról, hogy a nem XML formátumú fájl kocsivissza és sorvég jellel végződik. Ellenkező esetben a következő hibaüzenet jelenhet 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 a cikkben korábban létrehozott adatbázist és fájlformátumot használják.
Adatok exportálása bcp- és karakterformátummal
-c kapcsoló és OUT parancs.
Az ebben a példában létrehozott adatfájl minden további példában használatos.
A parancssorban adja meg a következő parancsot:
bcp TestDatabase.dbo.myChar OUT D:\BCP\myChar.bcp -T -c
REM Review results
NOTEPAD D:\BCP\myChar.bcp
Adatok importálása formátumfájl nélkül a bcp és a karakterformátum használatával
A -c kapcsoló és IN parancs. A parancssorban adja meg a következő parancsot:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myChar;"
REM Import data
bcp TestDatabase.dbo.myChar IN D:\BCP\myChar.bcp -T -c
REM Review results
SQLCMD -Q "SELECT * FROM TestDatabase.dbo.myChar;"
Adatok importálása nem XML formátumú fájllal bcp- és karakterformátummal
A -c és -f kapcsolók és IN parancs. A parancssorban adja meg a következő parancsot:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myChar;"
REM Import data
bcp TestDatabase.dbo.myChar IN D:\BCP\myChar.bcp -f D:\BCP\myChar.fmt -T
REM Review results
SQLCMD -Q "SELECT * FROM TestDatabase.dbo.myChar;"
BULK INSERT és karakteres 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.myChar; -- for testing
BULK INSERT TestDatabase.dbo.myChar FROM 'D:\BCP\myChar.bcp'
WITH (DATAFILETYPE = 'Char');
-- review results
SELECT * FROM TestDatabase.dbo.myChar;
BULK INSERT és karakterformátum használata nem XML-alapú formátumfájllal
Ez egy példa a FORMATFILE argumentumra. Hajtsa végre a következő Transact-SQL a Microsoft SQL Server Management Studióban (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myChar; -- for testing
BULK INSERT TestDatabase.dbo.myChar FROM 'D:\BCP\myChar.bcp'
WITH (FORMATFILE = 'D:\BCP\myChar.fmt');
-- review results
SELECT * FROM TestDatabase.dbo.myChar;
OPENROWSET és karakterformátum használata nem XML formátumú fájllal
Példa a FORMATFILE argumentumra. Hajtsa végre a következő Transact-SQL a Microsoft SQL Server Management Studióban (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myChar; -- for testing
INSERT INTO TestDatabase.dbo.myChar
SELECT * FROM OPENROWSET (
BULK 'D:\BCP\myChar.bcp',
FORMATFILE = 'D:\BCP\myChar.fmt'
) AS t1;
-- review results
SELECT * FROM TestDatabase.dbo.myChar;
Kapcsolódó tevékenységek
Adatformátumok használata tömeges importáláshoz vagy tömeges exportáláshoz:
- Natív és karakterformátumú adatok importálása az SQL Server korábbi verzióiból
- Natív formátum használata adatok importálásához vagy exportálásához (SQL Server)
- Unicode karakterformátum használata adatok importálásához vagy exportálásához (SQL Server)
- Unicode natív formátum használata adatok importálásához vagy exportálásához (SQL Server)