Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Unicode-inbyggt format är användbart när information måste kopieras från en Microsoft SQL Server-installation till en annan. Användningen av internt format för icke-teckendata sparar tid, vilket eliminerar onödig konvertering av datatyper till och från teckenformat. Användningen av Unicode-teckenformat för alla teckendata förhindrar förlust av utökade tecken vid massöverföring av data mellan servrar med olika kodsidor. En datafil i unicode-format kan läsas med valfri massimportmetod.
Unicode-inbyggt format rekommenderas för massöverföring av data mellan flera instanser av SQL Server med hjälp av en datafil som innehåller utökade tecken eller DBCS-tecken. För icke-teckendata använder unicode-inbyggt format inbyggda datatyper (databas). För teckendata, till exempel tecken, nchar, varchar, nvarchar, text, varchar(max), nvarchar(max)och ntextanvänder Unicodes inhemska teckendataformat.
De sql_variant data som lagras som en SQLVARIANT i en unicode-datafil i inbyggt format fungerar på samma sätt som i en datafil i internt format, förutom att tecken och varchar värden konverteras till nchar och nvarchar, vilket fördubblar mängden lagringsutrymme som krävs för de berörda kolumnerna. De ursprungliga metadata bevaras och värdena konverteras tillbaka till deras ursprungliga tecken och varchar datatyp när de massimporteras till en tabellkolumn.
Kommandoalternativ för unicode-inbyggt format
Du kan importera unicode-inbyggda formatdata till en tabell med bcp, BULK INSERT eller OPENROWSET BULK.
- För ett bcp-kommando eller EN BULK INSERT-instruktion kan du ange dataformatet i -instruktionen.
- För en OPENROWSET BULK-instruktion måste du ange dataformatet i en formatfil.
Unicode-inbyggt format stöds av följande kommandoalternativ:
Befallning | Alternativ | Beskrivning |
---|---|---|
bcp |
-N |
bcp Gör att verktyget använder unicode-inbyggt format, som använder inbyggda datatyper (databas) för alla icke-teckendata och Unicode-teckendataformat för alla teckendata (char, nchar, varchar, nvarchar, text och ntext). |
BULK INSERT |
DATAFILETYPE ='widenative' |
Använder unicode-inbyggt format vid massimport av data. |
OPENROWSET |
Ej tillämpligt | Måste använda en formatfil |
Not
Du kan också ange formatering per fält i en formatfil. Mer information finns i Formatera filer för att importera eller exportera data (SQL Server).
Exempel på testvillkor
Exemplen i det här avsnittet baseras på exempeltabellen myWidenative
och formatfilen myWidenative.fmt
. Ersätt de lokala filsökvägarna med en lokal filsökväg på ditt system.
Exempeltabell
Följande skript skapar en testdatabas, en tabell med namnet myWidenative
och fyller tabellen med några inledande värden. Kör följande 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;
Exempelfil med icke-XML-format
SQL Server stöder två typer av formatfiler: icke-XML-format och XML-format. Icke-XML-format är det ursprungliga format som stöds av tidigare versioner av SQL Server. Mer information finns i Använda filer som inte är XML-format (SQL Server). Följande kommando använder verktyget bcp för att generera en fil som inte är xml-format, myWidenative.fmt
, baserat på schemat för myWidenative
.
- Om du vill använda kommandot bcp för att skapa en formatfil anger du argumentet
format
och användernul
i stället för en datafilsökväg. - Formatalternativet kräver också alternativet
-f
. -
c
används för att ange teckendata -
T
används för att ange en betrodd anslutning med integrerad säkerhet.
I en kommandotolk anger du följande kommandon:
bcp TestDatabase.dbo.myWidenative format nul -f D:\BCP\myWidenative.fmt -T -N
REM Review file
Notepad D:\BCP\myWidenative.fmt
Viktig
Se till att icke-XML-filen slutar med en vagnretur\radmatning. Annars får du troligen följande felmeddelande:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
Exempel
Exemplen nedan använder databasen och formaterar filer som skapats ovan.
Använda bcp- och Unicode-inbyggt format för att exportera data
Strömbrytaren -N
och kommandot OUT
.
Datafilen som skapas i det här exemplet används i alla efterföljande exempel.
I en kommandotolk anger du följande kommandon:
bcp TestDatabase.dbo.myWidenative OUT D:\BCP\myWidenative.bcp -T -N
REM Review results
NOTEPAD D:\BCP\myWidenative.bcp
Använd bcp- och Unicode-format för att importera data utan en formatfil
Strömbrytaren -N
och kommandot IN
.
I en kommandotolk anger du följande kommandon:
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
Använd bcp- och Unicode-inbyggt format för att importera data med en fil som inte är XML-format
-N
och -f
växlar och IN
kommando.
I en kommandotolk anger du följande kommandon:
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
Använd BULK INSERT och Unicode-format utan formatfil
Argumentet DATAFILETYPE
.
Kör följande Transact-SQL i Microsoft SQL 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;
Använd BULK INSERT- och Unicode-format med en fil som inte är XML-format
Argumentet FORMATFILE
.
Kör följande Transact-SQL i Microsoft SQL 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;
Använd OPENROWSET och Unicode ursprungsformat med en fil som inte är XML-format
Argumentet FORMATFILE
.
Kör följande Transact-SQL i Microsoft SQL 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;
Relaterade uppgifter
Så här använder du dataformat för massimport eller massexport:
- Importera interna data och teckenformatdata från tidigare versioner av SQL Server
- Använd teckenformat för att importera eller exportera data (SQL Server)
- Använda internt format för att importera eller exportera data (SQL Server)
- Använda Unicode-teckenformat för att importera eller exportera data (SQL Server)