Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Nativní formát Unicode je užitečný v případech, kdy je nutné zkopírovat informace z jedné instalace microsoft SQL Serveru do jiné. Použití nativního formátu pro neznaková data šetří čas, eliminuje zbytečné převody datových typů z a na formát znakový. Použití formátu znaků Unicode pro všechna data znaků zabraňuje ztrátě všech rozšířených znaků během hromadného přenosu dat mezi servery pomocí různých znakových stránek. Datový soubor v nativním formátu Unicode lze číst libovolnou metodou hromadného importu.
Nativní formát Unicode se doporučuje pro hromadný přenos dat mezi více instancemi SQL Serveru pomocí datového souboru, který obsahuje rozšířené znaky nebo znaky DBCS. Pro neznaková data používá nativní formát Unicode nativní (databázové) datové typy. Pro znaková data, například znak, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max)a ntext, nativní formát Unicode používá znakovou sadu Unicode.
sql_variant data uložená jako SQLVARIANT v datovém souboru nativního formátu Unicode fungují stejným způsobem jako v datovém souboru nativního formátu, s tím rozdílem, že char a varchar hodnoty se převedou na nchar a nvarchar, což zdvojnásobí velikost úložiště požadovaného pro ovlivněné sloupce. Původní metadata se zachovají a hodnoty se při hromadném importu do sloupce tabulky převedou zpět na původní char a varchar datový typ.
Možnosti příkazů pro nativní formát Unicode
Data nativního formátu Unicode můžete importovat do tabulky pomocí příkazu bcp, BULK INSERT nebo OPENROWSET BULK.
- Pro příkaz bcp nebo příkaz BULK INSERT můžete v příkazu zadat formát dat.
- Pro příkaz OPENROWSET BULK je nutné zadat formát dat v souboru formátu.
Nativní formát Unicode je podporován následujícími možnostmi příkazů:
| Příkaz | Možnost | Popis |
|---|---|---|
bcp |
-N |
Způsobí, že bcp nástroj použije nativní formát Unicode, který používá nativní (databázové) datové typy pro všechna neznaková data a Unicode znakový formát pro veškerá znaková data (char, nchar, varchar, nvarchar, text a ntext). |
BULK INSERT |
DATAFILETYPE ='widenative' |
Používá nativní formát Unicode při hromadném importu dat. |
OPENROWSET |
Není k dispozici | Musí používat formátový soubor. |
Poznámka
Alternativně můžete v souboru formátu zadat formátování pro jednotlivá pole. Další informace najdete v tématu Formátovat soubory pro import nebo export dat (SQL Server).
Příklady testovacích podmínek
Příklady v tomto tématu jsou založeny na ukázkové tabulce myWidenative a formátu souboru myWidenative.fmt. Nahraďte místní cesty k souborům místními cestami k souborům ve vašem systému.
Ukázková tabulka
Následující skript vytvoří testovací databázi, tabulku s názvem myWidenative a naplní tabulku některými počátečními hodnotami. Spusťte následující transact-SQL:
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;
Ukázkový soubor formátu jiného formátu než XML
SQL Server podporuje dva typy formátového souboru: ne-XML formát a XML formát. Formát jiného formátu než XML je původní formát podporovaný staršími verzemi SQL Serveru. Podrobné informace najdete v tématu Použití souborů formátu NEŽ XML (SQL Server). Následující příkaz použije nástroj bcp k vygenerování souboru jiného formátu než XML, myWidenative.fmt, na základě schématu myWidenative.
- Pokud chcete k vytvoření formátu souboru použít příkaz b cp, zadejte
formatargument a místo cesty k datovému souboru použijtenul. - Možnost formátu také vyžaduje možnost
-f. -
cslouží k určení znakových dat. -
Tslouží k určení důvěryhodného připojení pomocí integrovaného zabezpečení.
Na příkazovém řádku zadejte následující příkazy:
bcp TestDatabase.dbo.myWidenative format nul -f D:\BCP\myWidenative.fmt -T -N
REM Review file
Notepad D:\BCP\myWidenative.fmt
Důležitý
Ujistěte se, že soubor bez formátu XML končí znakem return\line. V opačném případě se pravděpodobně zobrazí následující chybová zpráva:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
Příklady
Následující příklady používají databázi a formátové soubory vytvořené výše.
Export dat pomocí nativního formátu bcp a Unicode
Přepínač -N a příkaz OUT.
Datový soubor vytvořený v tomto příkladu se použije ve všech dalších příkladech.
Na příkazovém řádku zadejte následující příkazy:
bcp TestDatabase.dbo.myWidenative OUT D:\BCP\myWidenative.bcp -T -N
REM Review results
NOTEPAD D:\BCP\myWidenative.bcp
Použití nativního formátu bcp a Unicode k importu dat bez formátu souboru
Přepínač -N a příkaz IN.
Na příkazovém řádku zadejte následující příkazy:
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
Použití nativního formátu bcp a Unicode k importu dat se souborem jiného formátu než XML
Spínače -N a -f a příkaz IN.
Na příkazovém řádku zadejte následující příkazy:
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
Použití nativního formátu BULK INSERT a Unicode bez formátu souboru
Argument DATAFILETYPE.
V aplikaci Microsoft SQL Server Management Studio (SSMS) spusťte následující Transact-SQL:
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;
Použití nativního formátu BULK INSERT a Unicode se souborem jiného formátu než XML
Argument FORMATFILE.
V aplikaci Microsoft SQL Server Management Studio (SSMS) spusťte následující Transact-SQL:
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;
Použití nativního formátu OPENROWSET a Unicode se souborem jiného formátu než XML
Argument FORMATFILE.
V aplikaci Microsoft SQL Server Management Studio (SSMS) spusťte následující Transact-SQL:
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;
Související úkoly
Použití datových formátů pro hromadný import nebo hromadný export:
- Import nativních dat a dat formátu znaků ze starších verzí SQL Serveru
- Použití formátu znaků k importu nebo exportu dat (SQL Server)
- Použití nativního formátu k importu nebo exportu dat (SQL Server)
- Použití formátu znaku Unicode k importu nebo exportu dat (SQL Server)
Související obsah
- bcp nástroj
- Hromadné vložení (Transact-SQL)
- OPENROWSET (Transact-SQL)
- OPENROWSET BULK (Transact-SQL)
- Datové typy (Transact-SQL)