Using Native Format to Import or Export Data
Native format is recommended when you bulk transfer data between multiple instances of Microsoft SQL Server using a data file that does not contain any extended/double-byte character set (DBCS) characters.
Uwaga
Do przesłania danych między wiele wystąpień luzem SQL Server Korzystając z pliku danych, który zawiera rozszerzone lub znaki zestaw znaków dwubajtowych, należy użyć format macierzysty Unicode. Aby uzyskać więcej informacji zobaczUsing Unicode Native Format to Import or Export Data.
Format macierzysty obsługuje macierzyste typy danych bazy danych.Format macierzysty jest przeznaczony dla danych z dużą szybkością transferu danych między SQL Server tabele. Jeśli używasz formatu pliku, urządzenie źródłowe tabel docelowych muszą być identyczne.Transfer danych składa się z dwóch kroków:
Zbiorcza eksportowania danych z tabela źródłowej do pliku danych
Importowanie danych z pliku danych do tabela miejsce docelowe zbiorczej
Korzystanie z format macierzysty między tabelami identyczne pozwala uniknąć niepotrzebnych konwersji typów danych do i z formatu znaków, oszczędzając czas i miejsce.Aby osiągnąć szybkość transferu optymalne, jednak kilka są sprawdzane dotyczące formatowania danych.Aby zapobiec problemom z ładowanych danych, zobacz poniżej ograniczenia.
Ograniczenia
Aby pomyślnie importować dane w format macierzysty, zapewnia, że:
Plik danych jest w format macierzysty.
W tabela miejsce docelowe muszą być zgodne z pliku danych (o prawidłowej liczby kolumn, typ danych, długość, stan NULL i tak dalej) albo plik formatu należy użyć mapowania każdego pole do odpowiednich kolumn.
Uwaga
Importowanie danych z pliku, który jest niezgodna z tabela miejsce docelowe, operacja importowania może się powieść, ale są mogą być niepoprawne wartości danych do tabela miejsce docelowe.Dzieje się tak, ponieważ dane z pliku jest interpretowana w formacie tabela miejsce docelowe.Dlatego wszelkie niezgodności powoduje wstawienie niepoprawne wartości.Jednakże w żadnym wypadku nie można takich niezgodności spowoduje logicznego lub fizycznego niespójności w bazie danych.
Aby uzyskać informacje dotyczące korzystania z plików w formacie zobacz Format Files for Importing or Exporting Data.
Pomyślne importu nie będzie uszkodzony tabela miejsce docelowe.
W jaki sposób bcp obsługuje dane w format macierzysty
W tej części omówiono specjalne uwagi, w jaki sposób BCP narzędzie eksportuje i importuje dane w format macierzysty.
Noncharacter danych
Używa narzędzia bcp SQL Server format wewnętrzny dane binarne zapis noncharacter danych z tabela z plikiem danych.
char lub varchar dane
Na początku każdego char lub varchar pole BCP dodaje długość prefiksu.
Important Note: Gdy używany jest tryb macierzysty, domyślnie BCP narzędzie konwertuje znakiSQL Server na znaki OEM, zanim skopiuje je do pliku danych. The bcp utility converts characters from a data file to ANSI characters before it bulk imports them into a SQL Server tabela. Te konwersji znaków rozszerzonych dane mogą zostać utracone.Znaki rozszerzone należy użyć format macierzysty Unicode lub określić strona kodowa.Aby uzyskać więcej informacji na temat przy użyciu strona kodowa zobacz Copying Data Between Different Collations.
sql_variant dane
Jeśli sql_variant dane są przechowywane jako SQLVARIANT w pliku danych w formacie macierzystym, przechowuje dane, wszystkie jego właściwości. Metadane, które rejestruje typ danych każdej wartości danych są przechowywane razem z wartością danych.Te metadane są używane do odtwarzania wartości danych z tego samego typu danych w obiekt docelowy sql_variant Kolumna.
Jeśli nie jest to typ danych kolumna docelowej sql_variant, wszystkich wartości danych są konwertowane na typ danych kolumna docelowej po normalnych reguł konwersji niejawnych danych. Jeśli wystąpi błąd podczas konwersji danych, bieżącego zadania zostanie przywrócona.Wszystkie char i varchar wartości, które są przenoszone między sql_variant kolumny mogą mieć problemy przy konwersji kodu strona. Aby uzyskać więcej informacji zobaczCopying Data Between Different Collations.
Aby uzyskać więcej informacji na temat konwersji danych zobacz Data Type Conversion (Database Engine).
Opcje wiersza polecenia format macierzysty
Można importować dane w format macierzysty do tabela za pomocą BCP, ZBIORCZA INSERT lub INSERT...WYBIERZ * Z OPENROWSET(BULK...).Aby BCP polecenia lub instrukcja BULK INSERT, można określić format danych w wierszu polecenia.Dla INSERT...SELECT * FROM OPENROWSET(BULK...) instrukcja, należy określić format danych w plik formatu.
Format macierzysty jest obsługiwany przez następujące opcje wiersza polecenia:
Polecenie |
Opcja |
Description |
---|---|---|
BCP |
-n |
Powoduje, że BCP narzędzie do używania macierzyste typy danych danych.1 |
WSTAWIANIA ZBIORCZEGO |
DATAFILETYPE ='native' |
Używane typy danych macierzystego lub szerokie macierzystym danych.Należy zauważyć, że DATAFILETYPE jest niepotrzebna, jeśli plik formatu Określa typy danych. |
1 Aby załadować macierzystego (-n) dane na format zgodny ze starszymi wersjami SQL Server Klienci, należy użyć -V przełącznika.Aby uzyskać więcej informacji zobaczImporting Native and Character Format Data from Earlier Versions of SQL Server.
Aby uzyskać więcej informacji zobacz Narzędzie BCP, BULK INSERT (Transact-SQL), lub OPENROWSET (Transact-SQL).
Uwaga
Alternatywnie można określić formatowanie na podstawie na pole w pliku w formacie.Aby uzyskać więcej informacji zobaczFormat Files for Importing or Exporting Data.
Przykłady
W poniższych przykładach pokazano sposoby eksport masowy danych macierzystym za pomocą BCP oraz zbiorcze importować te same dane za pomocą BULK INSERT.
Tabela próbki
W przykładach wymagają, aby tabela o nazwie myTestNativeData w tabeli można utworzyćAdventureWorks przykładowej bazy danych w obszarze dbo schematu.Przed uruchomieniem w przykładach, należy utworzyć w tej tabela.W SQL Server Management Studio Uruchomić Edytor kwerendy:
USE AdventureWorks;
GO
CREATE TABLE myTestNativeData (
Col1 smallint,
Col2 nvarchar(50),
Col3 nvarchar(50)
);
Wypełnia tę tabela i przeglądać wynikowym zawartości należy wykonać następujące instrukcje:
INSERT INTO myTestNativeData(Col1,Col2,Col3)
VALUES(1,'DataField2','DataField3');
INSERT INTO myTestNativeData(Col1,Col2,Col3)
VALUES(2,'DataField2','DataField3');
GO
SELECT Col1,Col2,Col3 FROM myTestNativeData
Za pomocą bcp do masowego eksportowanie danych macierzysty
Aby wyeksportować dane z tabela do pliku danych, należy użyć BCP with the limit czasu opcja i następujące kwalifikatory:
Kwalifikatory |
Description |
---|---|
-n |
Określa macierzyste typy danych. |
-T |
Określa, że BCP łączy narzędzie SQL Server z zaufane połączenie przy użyciu zintegrowanych zabezpieczeń. Jeśli -T nie jest określony, konieczne jest określenie -U and -P pomyślnie rejestrować cali |
Następujący przykład zbiorczego eksportuje dane w format macierzysty z myTestNativeData Tabela do nowego pliku danych o nazwie myTestNativeData-n.Dat plik danych. Na Microsoft Wiersz polecenia systemu Windows, wpisz:
bcp AdventureWorks..myTestNativeData out C:\myTestNativeData-n.Dat -n -T
Za pomocą INSERT BULK macierzyste dane import zbiorczy
W poniższym przykładzie użyto BULK INSERT do importowania danych z myTestNativeData-n.Dat w pliku danych myTestNativeData Tabela. W SQL Server Management Studio Uruchomić Edytor kwerendy:
USE AdventureWorks;
GO
BULK INSERT myTestNativeData
FROM 'C:\myTestNativeData-n.Dat'
WITH (DATAFILETYPE='native');
GO
SELECT Col1,Col2,Col3 FROM myTestNativeData
GO
See Also