Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Format natywny Unicode jest przydatny, gdy informacje muszą być kopiowane z jednej instalacji programu Microsoft SQL Server do innej. Użycie formatu natywnego dla danych nietypowych pozwala zaoszczędzić czas, eliminując niepotrzebną konwersję typów danych do i z formatu znaków. Użycie formatu znaków Unicode dla wszystkich danych znaków zapobiega utracie znaków rozszerzonych podczas zbiorczego transferu danych między serwerami przy użyciu różnych stron kodu. Plik danych w formacie natywnym Unicode może być odczytywany przez dowolną metodę importu zbiorczego.
Format natywny Unicode jest zalecany w przypadku zbiorczego transferu danych między wieloma wystąpieniami programu SQL Server przy użyciu pliku danych zawierającego znaki rozszerzone lub DBCS. W przypadku danych nietypowych format natywny Unicode używa natywnych typów danych (bazy danych). W przypadku danych znaków, takich jak char, nchar, varchar, nvarchar, tekst, varchar(max), nvarchar(max)i ntextformat natywny Unicode używa formatu danych znaków Unicode.
Dane sql_variant przechowywane jako SQLVARIANT w pliku danych w formacie natywnym Unicode działają w taki sam sposób, jak w pliku danych w formacie natywnym, z wyjątkiem tego, że char i varchar wartości są konwertowane na nchar i nvarchar, co podwaja ilość miejsca wymaganego dla dotkniętych kolumn. Oryginalne metadane są zachowywane, a wartości są konwertowane z powrotem na ich oryginalne char i varchar typ danych podczas zbiorczego importowania do kolumny tabeli.
Opcje poleceń dla formatu natywnego Unicode
Dane w formacie natywnym Unicode można zaimportować do tabeli przy użyciu narzędzia bcp, BULK INSERT lub OPENROWSET BULK.
- W przypadku polecenia bcp lub instrukcji BULK INSERT można określić format danych w instrukcji .
- W przypadku instrukcji OPENROWSET BULK należy określić format danych w pliku formatu.
Format natywny Unicode jest obsługiwany przez następujące opcje polecenia:
Polecenie | Opcja | Opis |
---|---|---|
bcp |
-N |
bcp Powoduje użycie natywnego formatu Unicode, który korzysta z natywnych (bazy danych) typów danych dla wszystkich danych niezawierających znaków oraz formatu danych znakowych Unicode dla wszystkich danych znakowych (char, nchar, varchar, nvarchar, text i ntext). |
BULK INSERT |
DATAFILETYPE ='widenative' |
Używa formatu natywnego Unicode podczas zbiorczego importowania danych. |
OPENROWSET |
N/A | Musi używać pliku formatu |
Notatka
Alternatywnie można określić formatowanie dla poszczególnych pól w pliku formatu. Aby uzyskać więcej informacji, zobacz Pliki formatu do importu lub eksportu danych (SQL Server).
Przykładowe warunki testu
Przykłady w tym temacie są oparte na przykładowej tabeli myWidenative
i pliku myWidenative.fmt
formatu . Zastąp lokalne ścieżki plików lokalną ścieżką pliku w systemie.
Przykładowa tabela
Poniższy skrypt tworzy testową bazę danych, tabelę o nazwie myWidenative
i wypełnia tabelę kilkoma początkowymi wartościami. Wykonaj następujące polecenie 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;
Przykładowy plik formatu innego niż XML
Program SQL Server obsługuje dwa typy plików formatu: format inny niż XML i format XML. Format inny niż XML jest oryginalnym formatem obsługiwanym przez wcześniejsze wersje programu SQL Server. Aby uzyskać szczegółowe informacje, zapoznaj się z tematem Używanie plików formatu innego niż XML (SQL Server). Następujące polecenie użyje narzędzia bcp do wygenerowania pliku formatu innego niż xml, myWidenative.fmt
, na podstawie schematu myWidenative
.
- Aby użyć polecenia bcp w celu utworzenia pliku formatu, określ argument
format
i użyjnul
zamiast ścieżki pliku danych. - Opcja formatowania wymaga również opcji
-f
. -
c
służy do określania danych znaków -
T
służy do określania zaufanego połączenia przy użyciu zintegrowanych zabezpieczeń.
W wierszu polecenia wprowadź następujące polecenia:
bcp TestDatabase.dbo.myWidenative format nul -f D:\BCP\myWidenative.fmt -T -N
REM Review file
Notepad D:\BCP\myWidenative.fmt
Ważny
Upewnij się, że plik w formacie innym niż XML kończy się sekwencją znaków powrotu karetki i nowej linii. W przeciwnym razie prawdopodobnie zostanie wyświetlony następujący komunikat o błędzie:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
Przykłady
W poniższych przykładach użyto bazy danych i plików formatów utworzonych powyżej.
Eksportowanie danych przy użyciu formatu natywnego bcp i Unicode
Przełącznik -N
i polecenie OUT
.
Plik danych utworzony w tym przykładzie będzie używany we wszystkich kolejnych przykładach.
W wierszu polecenia wprowadź następujące polecenia:
bcp TestDatabase.dbo.myWidenative OUT D:\BCP\myWidenative.bcp -T -N
REM Review results
NOTEPAD D:\BCP\myWidenative.bcp
Użycie natywnego formatu bcp i Unicode do importowania danych bez pliku formatu
Przełącznik -N
i polecenie IN
.
W wierszu polecenia wprowadź następujące polecenia:
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
Używanie formatu natywnego bcp i Unicode do importowania danych z plikiem formatu innego niż XML
Przełączniki -N
i -f
oraz polecenie IN
.
W wierszu polecenia wprowadź następujące polecenia:
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
Używanie formatu natywnego BULK INSERT i Unicode bez pliku formatu
Argument DATAFILETYPE
.
Wykonaj polecenie Transact-SQL w programie 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;
Używanie formatu natywnego BULK INSERT i Unicode z plikiem formatu innego niż XML
Argument FORMATFILE
.
Wykonaj polecenie Transact-SQL w programie 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;
Używanie formatu natywnego OPENROWSET i Unicode z plikiem formatu innego niż XML
Argument FORMATFILE
.
Wykonaj polecenie Transact-SQL w programie 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;
Powiązane zadania
Aby używać formatów danych do importowania zbiorczego lub eksportu zbiorczego:
- Importowanie danych w formacie natywnym i znakowym z wcześniejszych wersji programu SQL Server
- Importowanie lub eksportowanie danych (SQL Server) przy użyciu formatu znaków
- Importowanie lub eksportowanie danych (SQL Server) przy użyciu formatu natywnego
- Importowanie lub eksportowanie danych (SQL Server) przy użyciu formatu znaków Unicode