BULK INSERT (Transact-SQL)

Importuje plik danych do tabela bazy danych lub widoku w postaci określonych przez użytkownika.

Topic link iconKonwencje składni języka Transact-SQL

BULK INSERT 
   [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] 
      FROM 'data_file' 
     [ WITH 
        ( 
   [ [ , ] BATCHSIZE = batch_size ] 
      [ [ , ] CHECK_CONSTRAINTS ] 
   [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] 
      [ [ , ] DATAFILETYPE = 
      { 'char' | 'native'| 'widechar' | 'widenative' } ] 
   [ [ , ] FIELDTERMINATOR = 'field_terminator' ] 
   [ [ , ] FIRSTROW = first_row ] 
   [ [ , ] FIRE_TRIGGERS ] 
   [ [ , ] FORMATFILE = 'format_file_path' ] 
   [ [ , ] KEEPIDENTITY ] 
   [ [ , ] KEEPNULLS ] 
   [ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ] 
   [ [ , ] LASTROW = last_row ] 
   [ [ , ] MAXERRORS = max_errors ] 
   [ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] 
   [ [ , ] ROWS_PER_BATCH = rows_per_batch ] 
   [ [ , ] ROWTERMINATOR = 'row_terminator' ] 
   [ [ , ] TABLOCK ] 
   [ [ , ] ERRORFILE = 'file_name' ] 
        )] 

Argumenty

  • database_name
    Jest to nazwa bazy danych, w którym znajduje się określona tabela lub widok.Jeśli nie zostanie określony, jest to bieżąca baza danych.

  • schema_name
    Is the name of the table or view schema.schema_name is optional if the default schema for the user performing the bulk-import operation is schema of the specified table or view.Jeśli schema nie określono i domyślnego schematu użytkownika operacji importu zbiorczego różni się od określonej tabela lub widoku SQL Server Zwraca komunikat o błędzie i operacji importu zbiorczego został anulowany.

  • table_name
    Jest nazwą tabela lub widoku do masowych zaimportować dane.Może być używany tylko widoki, w której wszystkie kolumny odnoszą się do tej samej tabela bazowa.Aby uzyskać więcej informacji na temat ograniczeń dla ładowania danych do widoków Zobacz INSERT (Transact-SQL).

  • 'data_file'
    Jest to pełna ścieżka pliku danych, który zawiera dane do importowania do określonej tabela lub widoku.BULK INSERT można importować dane z dysku (łącznie z siecią, dyskietki, dysku twardego i tak dalej).

    data_file należy określić prawidłową ścieżka z serwera, na którym SQL Server jest uruchomiony. Jeśli data_file jest zdalny plik, należy określić nazwę uniwersalnej konwencja nazewnictwa (UNC). Nazwa UNC ma postać \\Systemname\Nazwa_udziału\Ścieżka\Nazwa pliku.Na przykład \\SystemX\DiskZ\Sales\update.txt.

  • BATCHSIZE **=**batch_size
    Określa liczbę wierszy w partia.Każdej partia są kopiowane do serwera jako jedna transakcja.Jeśli to się nie powiedzie, SQL Server zatwierdza lub powoduje powrót transakcji dla każdej instancji. Domyślnie wszystkie dane w pliku danych określony jest jednej partia.Aby uzyskać informacje dotyczące zagadnień wydajności należy przeczytaj „ Spostrzeżenia w dalszej części tego tematu.

    Aby uzyskać więcej informacji zobaczManaging Batches for Bulk Import.

  • artcache_db_address
    Określa, że wszystkie ograniczenia dla tabela miejsce docelowe lub w widoku musi być sprawdzane podczas operacji importu zbiorczego.Bez opcji CHECK_CONSTRAINTS ograniczenia sprawdzanie i klucz obcy są ignorowane, a po zakończeniu operacji, ograniczenia dla tabela jest oznaczone jako zaufane nie.

    Uwaga

    Unikatowy, klucz podstawowy i NOT NULL ograniczenia są zawsze wymuszane.

    W pewnym momencie sprawdza ograniczenia dotyczące całej tabela.Jeśli w tabela sprzed niepusty operacji importu zbiorczego, koszt revalidating ograniczenie może przekroczyć koszt stosowanie ograniczeń typu CHECK do pierwotnych danych.

    Sytuacja, w którym może być wyłączone ograniczeń (zachowanie domyślne) jest, jeśli dane wejściowe zawiera wiersze, które naruszają ograniczenia.Z ograniczeń CHECK wyłączone importowane dane i następnie przy użyciu Transact-SQL instrukcje, aby usunąć nieprawidłowe dane.

    Uwaga

    Opcja MAXERRORS nie ma zastosowania do sprawdzania ograniczenia.

    Uwaga

    W SQL Server 2005 i nowszych wersji, BULK INSERT wymusza sprawdzania poprawności danych i kontroli dane, które mogą powodować niepowodzenie, gdy są one wykonywane na nieprawidłowe dane w pliku danych istniejących skryptów.

    Aby uzyskać więcej informacji zobaczControlling Constraint Checking by Bulk Import Operations.

  • CODEPAGE = { "ACP" | "OEM" | "RAW" | "code_page" }
    Określa strona kodowa danych w pliku danych.CODEPAGE ma znaczenie tylko wtedy, gdy dane zawierają char, varchar, lub text kolumny z wartościami znak większe niż 127 lub mniejsze niż 32.

    Uwaga

    Microsoft Zaleca się, że zostanie podana nazwa sortowanie dla każdej kolumna plik formatu.

    Wartość CODEPAGE

    Description

    AKP

    Kolumny char, varchar, lub text Typ danych są konwertowane z ANSI/Microsoft Strona kodowa systemu Windows (ISO 1252) do SQL Server Strona kodowa.

    OEM (domyślnie)

    Kolumny char, varchar, lub text Typ danych są konwertowane z strona kodowa OEM do SQL Server Strona kodowa.

    NIEPRZETWORZONE

    Występuje, bez konwersji z jednej stronie kodowej do innego; jest to najszybszy opcja.

    code_page

    Numer strona kodowa określonego, na przykład 850.

    Important noteImportant Note:
    SQL Server nie obsługuje strona kodowa 65001 (kodowania UTF-8).

    Aby uzyskać więcej informacji zobaczCopying Data Between Different Collations.

  • DATAFILETYPE = { "char" | "macierzystego „ | "widechar" | "widenative" }
    Określa, że BULK INSERT wykonuje operację importowania, za pomocą wartości typu określonego pliku danych.

    Wartość DATAFILETYPE

    Wszystkie dane w:

    CHAR (domyślnie)

    Format znaków.

    Aby uzyskać więcej informacji zobaczUsing Character Format to Import or Export Data.

    macierzysta

    Typy danych macierzystego (Baza danych).Utwórz plik danych trybu macierzystego przez zbiorczej importowania danych z SQL Server za pomocą BCP narzędzie.

    Macierzysty wartości oferuje wyższą wydajność alternatywę wartości char.

    Aby uzyskać więcej informacji zobaczUsing Native Format to Import or Export Data.

    widechar

    Znaki standardu Unicode.

    Aby uzyskać więcej informacji zobaczUsing Unicode Character Format to Import or Export Data.

    widenative

    Typy danych macierzystego (Baza danych), z wyjątkiem char, varchar, a text kolumny, w którym dane są przechowywane w formacie Unicode. Tworzenie widenative pliku danych przez zbiorczej importowania danych z SQL Server za pomocą BCP narzędzie.

    The widenative value offers a higher performance alternative to widechar.Jeśli plik danych zawiera ANSI znaki rozszerzone, określanie widenative.

    Aby uzyskać więcej informacji zobaczUsing Unicode Native Format to Import or Export Data.

  • FIELDTERMINATOR ='field_terminator'
    Określa terminator pole do użytku CHAR and widechar plików danych.Terminator pole domyślnie jest \t (znak tabulacji).Aby uzyskać więcej informacji zobaczSpecifying Field and Row Terminators.

  • FIRSTROW **=**first_row
    Określa numer pierwszego wiersza do załadowania.Wartością domyślną jest pierwszy wiersz w pliku określone dane.FIRSTROW jest oparte na 1.

    Uwaga

    Atrybut FIRSTROW nie ma na celu pominięcia nagłówków kolumn.Pominięcie nagłówków nie jest obsługiwana w instrukcja BULK INSERT.Gdy pomijania wierszy, SQL Server Database Engine przegląda tylko terminatory pole, a nie sprawdza poprawność danych w polach wiersze pominięto.

  • FIRE_TRIGGERS
    Określa, że wszystkie wyzwalacze wstawiania zdefiniowane w tabela docelowej wykonać podczas operacji importu zbiorczego.Jeśli wyzwalacze są zdefiniowane dla operacji INSERT w tabela miejsce docelowe, jest uruchamiany za każdym zakończone partia.

    Jeżeli nie określono FIRE_TRIGGERS, wykonywania wyzwalacze nie wstawiania.

    Aby uzyskać więcej informacji zobacz Controlling Trigger Execution When Bulk Importing Data.

  • FORMATFILE ='format_file_path'
    Określa pełną ścieżka plik formatu.Plik formatu opisuje pliku danych, który zawiera odpowiedzi przechowywane utworzone za pomocą BCP narzędzie w tej samej tabela lub widoku.plik formatu należy używać, jeśli:

    • Plik danych zawiera większej lub mniejszej liczby kolumn niż tabela lub widok.

    • W kolumnach znajdują się w innej kolejności.

    • Różne kolumna ograniczników.

    • Istnieją inne zmiany w formacie danych.Pliki w formacie są zwykle tworzone przy użyciu BCP , narzędzia i zmodyfikowany w edytorze tekstu, zależnie od potrzeb.Aby uzyskać więcej informacji zobaczNarzędzie BCP.

  • KEEPIDENTITY
    Określa, że w kolumnie tożsamości może zostać użyta wartość lub wartości tożsamości z zaimportowanego pliku danych.Jeśli parametr KEEPIDENTITY nie jest określony, wartości tożsamości w tej kolumnie są weryfikowane, ale nie są importowane, i program SQL Server automatycznie przypisuje unikatowe wartości na podstawie wartości umieszczania i przyrostu określonych podczas tworzenia tabeli.Jeśli plik danych nie zawiera wartości kolumny tożsamości w tabeli lub widoku, należy określić w pliku formatu, że kolumna tożsamości w tabeli lub widoku ma zostać pominięta podczas importowania danych; program SQL Server przypisuje wówczas automatycznie unikatowe wartości w tej kolumnie.Aby uzyskać więcej informacji, zobacz DBCC CHECKIDENT (Transact-SQL).

    Aby uzyskać więcej informacji zobacz temat zachowanie zidentyfikować Zobacz wartości Keeping Identity Values When Bulk Importing Data.

  • KEEPNULLS
    Określa, że puste kolumny powinny zachować wartość null, podczas operacji importu zbiorczego, zamiast wszelkie domyślne wartości dla kolumny wstawiony.Aby uzyskać więcej informacji zobaczKeeping Nulls or Using Default Values During Bulk Import.

  • KILOBYTES_PER_BATCH = kilobytes_per_batch
    Określa przybliżoną liczbę kilobajtów (KB) danych na partię jako kilobytes_per_batch. Domyślnie KILOBYTES_PER_BATCH jest nieznany.Aby uzyskać informacje dotyczące zagadnień wydajności należy przeczytaj „ Spostrzeżenia w dalszej części tego tematu.

    Aby uzyskać więcej informacji zobaczManaging Batches for Bulk Import.

  • LASTROW**=**last_row
    Określa ostatni wiersz do załadowania.Wartością domyślną jest 0, co wskazuje ostatni wiersz w pliku określone dane.

  • MAXERRORS = max_errors
    Określa maksymalną liczbę błędów składni dozwolonych danych przed anulowaniem operacji importu zbiorczego.Każdy wiersz, który nie może być importowany przez operację importu zbiorczego jest ignorowany i liczony jako jeden błąd.Jeśli max_errors nie jest określony, wartość domyślna to 10.

    Uwaga

    Opcja MAX_ERRORS nie stosuje się do ograniczenia kontroli lub konwertowania money i bigint typy danych.

  • ORDER ({column [ASC | DESC]} [ ,... n ] )
    Określa, w jaki sposób sortowania danych w pliku danych.Wydajność import zbiorczy lepsza Jeśli importowane dane są sortowane zgodnie z indeksem klastrowanym dla tabela, a ewentualne.Jeśli plik danych jest sortowana w innej kolejności, która jest inna niż kolejność klucz indeks klastrowany lub Brak indeksu klastrowanego w tabela, z klauzula ORDER jest ignorowana.Nazwy kolumn, dostarczane muszą być nazwy prawidłowego kolumn w tabela docelowej.Domyślnie zbiorczej operacji wstawiania zakłada się, plik danych jest nieuporządkowana.Dla import zbiorczy zoptymalizowane, SQL Server sprawdza również, że importowane dane są sortowane.

    Aby uzyskać więcej informacji zobacz Controlling the Sort Order When Bulk Importing Data.

  • n
    Jest to symbol zastępczy wskazujący, że można określić wiele kolumn.

  • ROWS_PER_BATCH **=**rows_per_batch
    Wskazuje przybliżoną liczbę wierszy danych w pliku danych.

    Domyślnie wszystkie dane w pliku danych jest wysyłany do serwera w pojedynczą transakcję, a liczba wierszy w partia jest nieznany dla optymalizator kwerendy.Jeśli określisz ROWS_PER_BATCH (o wartości > 0) serwera używa tej wartości w celu zoptymalizowania operacji importu zbiorczego. Wartość określona dla ROWS_PER_BATCH około ma taki sam, jak rzeczywista liczba wierszy.Aby uzyskać informacje dotyczące zagadnień wydajności należy przeczytaj „ Spostrzeżenia w dalszej części tego tematu.

    Aby uzyskać więcej informacji zobaczManaging Batches for Bulk Import.

  • ROWTERMINATOR ='row_terminator'
    Określa terminator wiersza ma być używany dla CHAR and widechar plików danych.Jest terminator wiersza domyślnego \r\n (znak nowego wiersza).Aby uzyskać więcej informacji zobaczSpecifying Field and Row Terminators.

  • TABLOCK
    Określa, że blokada poziomie tabela jest nabyte na czas trwania operacji importu zbiorczego.Tabela może być załadowany jednocześnie przez wielu klientów Jeśli tabela zawiera indeksy nie została określona TABLOCK.Domyślnie blokowania zachowanie zależy od opcji tabela Blokada tabela ładowanie zbiorcze.Przytrzymanie blokada na czas trwania operacji importu zbiorczego zmniejsza rywalizacji blokad w tabela, w niektórych przypadkach może znacznie poprawić wydajność.Aby uzyskać informacje dotyczące zagadnień wydajności należy przeczytaj „ Spostrzeżenia w dalszej części tego tematu.

    Aby uzyskać więcej informacji zobaczControlling Locking Behavior for Bulk Import.

  • ERRORFILE ='file_name'
    Określa plik, który jest używany do zbierania wiersze, które mają błędów formatowania i nie można przekonwertować na zestawie zestaw wierszy OLE DB.Te wiersze są kopiowane do tego pliku błąd z pliku danych „ tak jak jest. „

    Plik błędu jest tworzony, gdy polecenie jest wykonywane.Błąd występuje, jeżeli plik już istnieje.Ponadto plik formantu, który ma rozszerzenie. ERROR.txt jest tworzony.Odwołuje się do każdego wiersza w pliku błędów i zawiera błąd diagnostyki.Natychmiast po poprawieniu błędów, możliwe jest załadowanie danych.

Remarks

Porównanie instrukcja BULK INSERT, INSERT...SELECT * FROM OPENROWSET(BULK...) instrukcja oraz BCP patrz poleceniaAbout Bulk Import and Bulk Export Operations.

Aby uzyskać informacje na temat przygotowywania danych do import zbiorczy, na przykład wymagania dotyczące importowania danych z pliku CSV danych zobacz Preparing Data for Bulk Export or Import.

Instrukcja BULK INSERT mogą być wykonywane w ramach transakcji zdefiniowanej przez użytkownika.Wycofywanie transakcji zdefiniowanej przez użytkownika, która korzysta z instrukcja BULK INSERT i BATCHSIZE klauzula do importowania danych do tabela lub widoku za pomocą wielokrotne instancje rolkach ponownie wszystkie instancje wysłane do SQL Server.

Aby uzyskać informacje na temat podczas operacji wstawiania wierszy, które są wykonywane przez import zbiorczy są rejestrowane dziennik transakcji zobacz Prerequisites for Minimal Logging in Bulk Import.

W SQL Server 2005 i nowszych wersji, BULK INSERT nowych, wymusza bardziej rygorystyczne sprawdzanie poprawności danych i dane kontroli dane odczytane z pliku, który może spowodować, że istniejące skrypty nie powiedzie się, gdy są one wykonywane na nieprawidłowe dane. Na przykład BULK INSERT teraz weryfikuje które:

  • Reprezentacje macierzystego float lub real typy danych są prawidłowe.

  • Dane w standardzie Unicode ma o długości nawet bajtów.

Formularze nieprawidłowe dane, które mogą być zbiorczej importowane z wcześniejszych wersji programu SQL Server, nie może teraz załadować. We wcześniejszych wersjach SQL Server, błąd nie występuje, dopóki klient próbuje uzyskać dostęp do nieprawidłowych danych. Bardziej rygorystyczne sprawdzanie poprawności minimalizuje surprises podczas badania danych po zakończeniu import zbiorczy.

Zagadnienia wydajności

Jeśli liczba stron, które mają zostać opróżnione w jednej partia przekracza progowa wewnętrznych, pełne skanowanie pula buforów może wystąpić do identyfikowania stron, które opróżnić po zatwierdzeniu partia.To skanowanie pełne może wówczas wydajność importu zbiorczego.Prawdopodobnie wielkość przekracza próg wewnętrzny występuje wówczas, gdy puli dużych buforów jest łączony z wolnym podsystemu We/Wy.W celu uniknięcia przepełnienia buforu na komputerach dużych, albo nie należy używać wskazówki dotyczącej TABLOCK, (co spowoduje usunięcie optymalizacje zbiorcze) lub użyj mniejszej partia (które zachowuje optymalizacje zbiorcze).

Ponieważ różne komputery, zaleca się, aby przetestować różne wielkości partia z sieci ładowania danych, aby dowiedzieć się, co najlepiej odpowiada potrzebom użytkownika.

Zbiorcza eksportowanie lub importowanie SQLXML dokumenty

Zbiorcza eksportowania lub importowania danych SQLXML, użyj jednej z następujących typów danych w sieci plik formatu:

Typ danych

Efekt

SQLCHAR lub SQLVARYCHAR

Dane są przesyłane w stronie kodowej klient lub w stronie kodowej implikowane przez sortowanie).The effect is the same as specifying the DATAFILETYPE ='char' without specifying a format file.

SQLNCHAR lub SQLNVARCHAR

Dane są przesyłane w formacie Unicode.Efekt jest taki sam, jak określanie DATAFILETYPE = "widechar" bez określenia plik formatu.

SQLBINARY lub SQLVARYBIN

Dane są przesyłane bez żadnej konwersji.

Ciąg do dziesiętne Type Conversions.

In SQL Server 2005 and later versions, the string-to-decimal type conversions used in BULK INSERT follow the same rules as the Transact-SQLCONVERT function, which rejects strings representing numeric values that use scientific notation.W związku z tym BULK INSERT traktuje ciągów, takich jak nieprawidłowe wartości i raportuje błędy konwersji.

Uwaga

W SQL Server w wersja 7.0 i SQL Server 2000BULK INSERT obsługuje konwersja typu ciąg znaków do dziesiętnego dla ciągów reprezentujących wartości liczbowe, korzystających z notacji naukowej.

Aby obejść ten problem, należy użyć plik formatu do notacja naukowa import zbiorczy float dane kolumna dziesiętnej. W plik formatu, jednoznacznie opisują kolumna jako real lub float dane. Aby uzyskać więcej informacji na temat tych typów danych zobacz float and real (Transact-SQL).

Uwaga

Pliki w formacie reprezentują real dane, jak SQLFLT4 Typ danych i float dane, jak SQLFLT8 Typ danych. Aby uzyskać więcej informacji na temat plików w formacie XML zobacz Schema Syntax for XML Format Files; lub Aby uzyskać informacje dotyczące plików w formacie XML inny niż, zobacz Specifying File Storage Type by Using bcp.

Przykładem importowanie wartość numeryczną, która używa zapis naukowy

W tym przykładzie w poniższej tabela:

CREATE TABLE t_float(c1 float, c2 decimal (5,4))

Użytkownik chce zbiorczej zaimportować dane t_float Tabela. Plik danych, C:\t_float-c.dat, zawiera zapis naukowy float dane, na przykład:

8.0000000000000002E-28.0000000000000002E-2

Jednak BULK INSERT nie może zaimportować te dane bezpośrednio do t_float, ponieważ jego drugiej kolumna c2, używa decimal Typ danych. W związku z tym plik formatu jest konieczne.plik formatu musi być mapowana notacja naukowa float dane do formatu dziesiętnego kolumna c2.

Następujące plik formatu używa SQLFLT8 Typ danych do mapowania drugie pole danych do drugiej kolumna:

<?xml version="1.0"?>

<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<RECORD>

<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="30"/>

<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="30"/> </RECORD> <ROW>

<COLUMN SOURCE="1" NAME="c1" xsi:type="SQLFLT8"/>

<COLUMN SOURCE="2" NAME="c2" xsi:type="SQLFLT8"/> </ROW> </BCPFORMAT>

Aby użyć tego pliku w formacie (przy użyciu nazwy pliku C:\t_floatformat-c-xml.xml) importować dane testowe do tabela test, należy wydać następujące Transact-SQL instrukcja:

BULK INSERT bulktest..t_float
FROM 'C:\t_float-c.dat' WITH (FORMATFILE='C:\t_floatformat-c-xml.xml');
GO

Uprawnienia

Musi mieć uprawnienia INSERT i ADMINISTROWAĆ BULK operacje.Ponadto wymagane jest uprawnienie instrukcji ALTER tabela, jeśli spełniony jest jeden lub więcej z następujących czynności:

  • Istnieją ograniczenia i nie określono opcji CHECK_CONSTRAINTS.

    Uwaga

    Wyłączanie ograniczenia jest to zachowanie domyślne.Aby jawnie ograniczeń check, należy użyć opcji CHECK_CONSTRAINTS.

  • Istnieją wyzwalacze i nie określono opcji FIRE_TRIGGER.

    Uwaga

    Wyzwalacze nie są uruchamiane domyślnie.Aby jawnie ognia wyzwalaczy, należy użyć opcji FIRE_TRIGGER.

  • Opcja KEEPIDENTITY importowanie tożsamości wartości z pliku danych.

Delegowanie kont zabezpieczeń (Personifikacja)

Jeśli SQL Server użytkownik jest zalogowany przy użyciu uwierzytelnianie systemu Windows, użytkownik może odczytywać tylko pliki dostępne do konta użytkownika, niezależnie od profilu zabezpieczeń SQL Server proces.

Podczas wykonywania instrukcja BULK INSERT przy użyciu SQLCMD or Osql, z jednego komputera, wstawianie danych do SQL Server na drugim komputerze oraz określanie data_file w trzecim komputera przy użyciu ścieżka UNC może pojawić się błąd 4861.

Aby rozwiązać ten problem, należy użyć SQL Server Uwierzytelnianie i określ SQL Server Identyfikator logowania, korzystającej z profilu zabezpieczeń SQL Server Konto procesu lub skonfigurowanie systemu Windows, aby włączyć delegowanie konta zabezpieczeń. Aby uzyskać informacje na temat włączania konta użytkownika, który ma być zaufany w kwestii delegowania zobacz Pomoc systemu Windows.

Aby uzyskać więcej informacji na temat tego i inne względy bezpieczeństwa korzystania z BULK INSERT zobacz Importing Bulk Data by Using BULK INSERT or OPENROWSET(BULK...).

Przykłady

A.Aby importować dane z pliku za pomocą przewodów

W poniższym przykładzie Importuje informacje o szczegóły zamówienia na AdventureWorks.Sales.SalesOrderDetail Tabela z pliku danych określone za pomocą (potoku|) terminator pole i |\n jak terminator wiersza.

BULK INSERT AdventureWorks.Sales.SalesOrderDetail
   FROM 'f:\orders\lineitem.tbl'
   WITH 
      (
         FIELDTERMINATOR =' |',
         ROWTERMINATOR =' |\n'
      )

B.Za pomocą argumentu FIRE_TRIGGERS

W następującym przykładzie określono FIRE_TRIGGERS argument.

BULK INSERT AdventureWorks.Sales.SalesOrderDetail
   FROM 'f:\orders\lineitem.tbl'
   WITH
     (
        FIELDTERMINATOR =' |',
        ROWTERMINATOR = ':\n',
        FIRE_TRIGGERS
      )

C.Przy użyciu wiersza źródła jako terminator wiersza

W poniższym przykładzie importuje plik, który używa wysuwu wiersza jako terminator wiersza, takich jak wyjściowego systemu UNIX:

DECLARE @bulk_cmd varchar(1000)
SET @bulk_cmd = 'BULK INSERT AdventureWorks.Sales.SalesOrderDetail
FROM ''<drive>:\<path>\<filename>'' 
WITH (ROWTERMINATOR = '''+CHAR(10)+''')'
EXEC(@bulk_cmd)

Dodatkowe przykłady

Historia zmian

Microsoft Learning

Uwagi dotyczące wydajności dodane do sekcji "Uwagi".

Zaktualizowane opis opcji FIRSTROW.

Opis aktualizacji code_page.