Udostępnij za pośrednictwem


Do importowania lub eksportowania danych przy użyciu formatu macierzystego

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.

Ostrzeżenie

Luzem transferu danych między wiele wystąpień SQL Server przy użyciu pliku danych, który zawiera rozszerzone lub znaki zestaw znaków dwubajtowych należy używać format macierzysty Unicode.Aby uzyskać więcej informacji, zobacz Przy użyciu formatu Unicode macierzystego do importowania lub eksportowania danych.

Format macierzysty utrzymuje macierzyste typy danych bazy danych.Format macierzysty jest przeznaczona dla danych o dużej szybkości transferu danych między SQL Server tabele.Jeśli używasz formatu pliku, źródło i tabel miejsce docelowe nie muszą być identyczne.Transfer danych wymaga wykonania dwóch kroków:

  1. Eksportowanie danych z luzem źródło tabela do pliku danych

  2. Importowanie danych z pliku danych do tabela miejsce docelowe luzem

Użyj format macierzysty między tabelami identyczne pozwala uniknąć niepotrzebnych konwersji typów danych z formatu znaków i zapisywanie czas i miejsca.Aby osiągnąć szybkość transferu optymalne, jednak kilka są sprawdzane dotyczące formatowania danych.Aby zapobiec problemom z załadowanych danych, zobacz następujące listy ograniczeń.

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 (posiadający poprawną liczbę kolumn, typ danych, długość, stan NULL i tak dalej) albo plik formatu należy użyć mapowania każdego pole do odpowiednich kolumn.

    Ostrzeżenie

    Importować dane z pliku, która jest niezgodna z tabela miejsce docelowe, operacja importowania może się powieść, ale mogą być niepoprawne są wstawione do tabela miejsce docelowe wartości danych.Jest tak, ponieważ dane z pliku jest interpretowana w formacie tabela miejsce docelowe.Dlatego wszelkie niezgodności wyniki w wstawiania niepoprawne wartości.Jednak w żadnych okolicznościach takich niezgodności powodować logiczny lub fizyczny niespójności w bazie danych.

    Informacji na temat używania formatu plików, zobacz Format plików importowanie lub eksportowanie danych.

Pomyślne zaimportowanie nie zostanie uszkodzona tabela miejsce docelowe.

Sposób obsługi danych w formacie macierzystym bcp

W tej sekcji omówiono uwagi specjalne dotyczące sposobu bcp narzędzie danych w format macierzysty przywozu i wywozu.

  • Noncharacter dane

    Narzędzie bcp używa SQL Server dane binarne wewnętrzny format zapis noncharacter danych z tabela do pliku danych.

  • charor varchar data

    Na początku każdego char lub varchar pole, bcp dodaje długość prefiksu.

    Ważna informacjaWażne:

    Gdy używany jest tryb macierzysty, domyślnie bcp narzędzie konwertuje znaki z SQL Server na znaki OEM, przed skopiowaniem ich do pliku danych.Bcp narzędzie konwertuje znaki z pliku danych na znaki ANSI przed zbiorczego importuje je do SQL Server tabela.Podczas takich konwersji znaków rozszerzonych, dane mogą zostać utracone.Znaki rozszerzone użyj format macierzysty Unicode lub określić strona kodowa.Aby uzyskać więcej informacji na temat przy użyciu strona kodowa, zobacz Kopiowanie danych między różne sposoby sortowania.

  • sql_variant dane

    Jeśli sql_variant dane są przechowywane jako element SQLVARIANT w pliku danych w formacie macierzystym, danych przechowuje wszystkie cechy.Metadane rejestruje typ danych każdej wartości danych są przechowywane razem z wartości danych.metadane jest używane do odtwarzania danych wartości z tego samego typu danych w obiekt docelowy sql_variant kolumna.

    Jeśli typ danych obiekt docelowy kolumna nie jest sql_variant, każda wartość danych jest konwertowana na typ danych obiekt docelowy kolumna po normalnych reguł konwersji danych niejawny.Jeśli wystąpi błąd podczas konwersji danych, bieżący partia zostanie przywrócona.Dowolny char i varchar wartości, które są przenoszone między sql_variant kolumny może mieć strona kodowa problemy konwersji.Aby uzyskać więcej informacji, zobacz Kopiowanie danych między różne sposoby sortowania.

    Aby uzyskać więcej informacji na temat konwersji danych, zobacz Konwersja typu danych (aparat bazy danych).

Polecenie Opcje formatu macierzystego

Można importować dane w format macierzysty do tabela za pomocą bcp, ZBIORCZEGO WSTAW lub WSTAW...WYBIERZ * Z OPENROWSET(BULK...).Dla bcp polecenia lub WSTAW luzem instrukcja można określić format danych w wierszu polecenia.Dla instrukcji INSERT...WYBIERZ * Z OPENROWSET(BULK...) instrukcja, należy określić format danych w formacie pliku.

Format macierzysty jest obsługiwana przez następujące opcje wiersza polecenia:

Polecenia

Opcja

Opis

BCP

-n

Powoduje, że bcp narzędzie do używania macierzyste typy danych danych.1

WSTAW LUZEM

DATAFILETYPE ='native'

Używa danych macierzystego lub szerokie macierzystym typów danych.Należy zauważyć, że DATAFILETYPE nie jest potrzebny, jeśli plik formatu określa typy danych.

1 Załadować macierzysty (- n) danych na format zgodny z wcześniejszymi wersjami programu SQL Server klientów, -V przełączyć.Aby uzyskać więcej informacji, zobacz Importowanie macierzystego i znaków formatowania danych z wcześniejszych wersji programu SQL Server.

Aby uzyskać więcej informacji, zobacz Narzędzie bcp, BULK INSERT (Transact-SQL), lub OPENROWSET (Transact-SQL).

Ostrzeżenie

Alternatywnie można określić formatowanie na podstawie-pole w plik formatu.Aby uzyskać więcej informacji, zobacz Format plików importowanie lub eksportowanie danych.

Przykłady

W poniższych przykładach pokazano sposób eksport zbiorczy macierzystego danych przy użyciu bcp i import zbiorczy takie same dane za pomocą WSTAWIĆ luzem.

Przykładowa tabela

Przykłady wymagają, że tabela o nazwie myTestNativeData tabeli można utworzyć w AdventureWorks przykładowej bazy danych pod dbo schematu.Przed uruchomieniem przykłady, należy utworzyć w tej tabela.W SQL Server Management Studio Edytor kwerend wykonać:

USE AdventureWorks2008R2;
GO
CREATE TABLE myTestNativeData (
   Col1 smallint,
   Col2 nvarchar(50),
   Col3 nvarchar(50)
   ); 

Wypełnić tę tabela i wyświetlić wynikowy zawartość 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 luzem eksportu danych macierzystego

Aby wyeksportować dane z tabela do pliku danych, należy użyć bcp z się opcja i następujące określenia:

Kwalifikatory

Opis

-n

Określa macierzyste typy danych.

-T

Określa, że bcp narzędzie łączy się z SQL Server z zaufane połączenie przy użyciu zintegrowanych zabezpieczeń.Jeśli -T nie jest określony, należy określić - U i -P pomyślnie zalogować.

Następujący przykład zbiorczego eksportuje dane w format macierzysty z myTestNativeData tabela do nowego pliku danych o nazwie myTestNativeData-n.Dat pliku danych.W Microsoft wiersz polecenia systemu Windows, wpisz:

bcp AdventureWorks2008R2..myTestNativeData out C:\myTestNativeData-n.Dat -n -T

Za pomocą polecenia WSTAW luzem do danych w trybie macierzystym importu zbiorczego

W poniższym przykładzie użyto WSTAW luzem do importowania danych w myTestNativeData-n.Dat dane pliku do myTestNativeData tabela.W SQL Server Management Studio Edytor kwerend wykonać:

USE AdventureWorks2008R2;
GO
BULK INSERT myTestNativeData 
    FROM 'C:\myTestNativeData-n.Dat' 
   WITH (DATAFILETYPE='native'); 
GO
SELECT Col1,Col2,Col3 FROM myTestNativeData
GO