BULK INSERT (Transact-SQL)

Importuje plik danych do bazy danych, tabela lub widoku w formacie określonym przez użytkownika w SQL Server 2008 R2.Użyj tej instrukcja do efektywnego transferu danych między serwerem SQL i źródeł dane niejednorodne .

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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 nazwą bazy danych, w którym znajduje się w określonej tabela lub widoku.Jeśli nie określono jest bieżąca baza danych.

  • schema_name
    Jest to nazwa schematu tabela lub widoku.schema_name jest opcjonalna, jeśli schemat określonej tabela lub widoku domyślnego schematu dla użytkownika operacji importu zbiorczego.Jeśli schema nie jest określony 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 jest anulowana.

  • table_name
    Jest nazwą tabela lub widoku, aby import zbiorczy dane do.Można używać tylko widoki, w których wszystkie kolumny odwołać 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 pełną ścieżka pliku danych, który zawiera dane do importowania do określonej tabela lub widoku.WSTAW zbiorczej można importować dane z dysku (w tym sieci, dyskietki, dysku twardego i tak dalej).

    data_filenależ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 konwencji nazewnictwa (UNC).Nazwa UNC ma postać \\Systemname\nazwa_udziału\ścieżki\nazwę pliku.Na przykład \\SystemX\DiskZ\Sales\update.txt.

  • BATCHSIZE **=**batch_size
    Określa liczbę wierszy w partia.Każda partia jest kopiowany do serwera jako jedną transakcję.Jeśli to się nie powiedzie, SQL Server zatwierdza lub wycofuje transakcji dla każdej partia.Domyślnie wszystkie dane w pliku danych określony jest jednej partia.Aby uzyskać informacje dotyczące zagadnienia dotyczące wydajności Zobacz "Uwagi" w dalszej części tego tematu.

    Aby uzyskać więcej informacji, zobacz Zarządzanie instancje importu zbiorczego.

  • CHECK_CONSTRAINTS
    Określa, że wszystkie ograniczenia w miejsce docelowe tabela lub widoku muszą być sprawdzone podczas operacji importu zbiorczego.Bez opcji CHECK_CONSTRAINTS ograniczenia klucza OBCEGO i wyboru są ignorowane, a po zakończeniu operacji, ograniczenia dla tabela jest oznaczone jako zaufane nie.

    Ostrzeżenie

    Unikatowy, klucz podstawowy oraz nie ograniczenia wartości NULL są zawsze wymuszane.

    W pewnym momencie musi zbadać ograniczeń dla całej tabela.Jeśli tabela sprzed niepusty operacji importu zbiorczego, koszt revalidating ograniczenie może przekroczyć kosztów stosowania ograniczeń typu CHECK do pierwotnych danych.

    Sytuacja, w której może być wyłączona ograniczeń (zachowanie domyślne) jest, jeśli dane wejściowe zawiera wiersze, które naruszają ograniczenia.Z ograniczeń CHECK wyłączone, można importować dane, a następnie użyć Transact-SQL instrukcji, aby usunąć nieprawidłowe dane.

    Ostrzeżenie

    Opcja MAXERRORS nie dotyczą ograniczenia kontroli.

    Ostrzeżenie

    W SQL Server 2005 i nowsze wersje, WSTAW luzem wymusza sprawdzania poprawności danych i kontroli danych, które może spowodować, że istniejące skrypty się niepowodzeniem, gdy są wykonywane na nieprawidłowe dane w pliku danych.

    Aby uzyskać więcej informacji, zobacz Kontrolowanie, ograniczenie sprawdzania przez operacji importu zbiorczego.

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

    Ostrzeżenie

    Microsoftzaleca, aby określić nazwę sortowanie dla każdej kolumna w plik formatu.

    Wartość CODEPAGE

    Opis

    AKP

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

    OEM (domyślnie)

    Kolumny z char, varchar, lub text typu danych są konwertowane z systemu OEM strona kodowa , aby SQL Server strona kodowa.

    RAW

    Konwersja z jednej strona kodowa występuje; jest to najszybsza opcja.

    code_page

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

    Ważna informacjaWażne:
    SQL Servernie obsługuje strona kodowa 65001 (kodowanie UTF-8).

    Aby uzyskać więcej informacji, zobacz Kopiowanie danych między różne sposoby sortowania.

  • DATAFILETYPE = { "char" | "macierzystych" | 'widechar' | 'widenative' }
    Określa, że wstawianie luzem wykonywane przy użyciu wartości typu określonego pliku danych operacji importowania.

    Wartość DATAFILETYPE

    Wszystkie dane reprezentowane w:

    CHAR (domyślnie)

    Format znaków.

    Aby uzyskać więcej informacji, zobacz Do importowania lub eksportowania danych przy użyciu formatu znaków.

    macierzysty

    Typy danych w trybie macierzystym (baza danych).Utworzyć plik danych w trybie macierzystym luzem, importowania danych z SQL Server za pomocą bcp narzędzia.

    Wartość macierzystym oferuje alternatywę wydajności wyższej wartości char.

    Aby uzyskać więcej informacji, zobacz Do importowania lub eksportowania danych przy użyciu formatu macierzystego.

    widechar

    Znaki standardu Unicode.

    Aby uzyskać więcej informacji, zobacz Do importowania lub eksportowania danych przy użyciu formatu znaków Unicode.

    widenative

    Typy danych w trybie macierzystym (baza danych), z wyjątkiem char, varchar, i text kolumny, w których dane są przechowywane jako Unicode.Tworzenie widenative pliku danych przez luzem, importowania danych z SQL Server za pomocą bcp narzędzia.

    Widenative wartość oferuje alternatywę wyższą wydajność widechar.Jeśli plik danych zawiera ANSI określić znaki rozszerzone, widenative.

    Aby uzyskać więcej informacji, zobacz Przy użyciu formatu Unicode macierzystego do importowania lub eksportowania danych.

  • FIELDTERMINATOR ='field_terminator"
    Określa terminator pole ma być używany dla char i widechar plików danych.Terminator pole domyślny jest \t (znak tabulacji).Aby uzyskać więcej informacji, zobacz Określanie pola i terminatory wiersza.

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

    Ostrzeżenie

    FIRSTROW atrybut nie jest przeznaczony do pominięcia nagłówków kolumna .Pominięcie nagłówków nie jest obsługiwany przez wstawianie luzem instrukcja.Gdy pomijając wiersze, Aparat baz danych programu SQL Server przegląda tylko terminatory pole i nie sprawdza poprawność danych w polach wiersze pominięto.

  • FIRE_TRIGGERS
    Określa dowolny Wstaw wyzwalaczy zdefiniowane wtabela obiekt docelowy,wykonać podczas operacji importu zbiorczego. Jeśli wyzwalacze są zdefiniowane dla operacji WSTAWIANIA wtabela miejsce docelowe, jest uruchamiany dla każdego wypełnionego partia.

    FIRE_TRIGGERS nie jest określony, Wstaw nie wyzwala, wykonać.

    Aby uzyskać więcej informacji, zobacz Sterowanie wykonywaniem wyzwalacza podczas zbiorczego, importowanie danych.

  • FORMATFILE ='format_file_path"
    Określa pełną ścieżka plik formatu.plik formatu zawiera opis pliku danych, który zawiera odpowiedzi przechowywane utworzone za pomocą bcp narzędzia na tej samej tabela lub widoku.plik formatu powinien być używany, jeśli:

    • Plik danych zawiera większą lub mniejszą liczbą kolumn niż tabela lub widoku.

    • Kolumny są w innej kolejności.

    • Różne kolumna ograniczników.

    • Istnieją inne zmiany w formacie danych.Pliki w formacie są zwykle tworzone za pomocą bcp narzędzia i zmodyfikowany w edytorze tekstu, w razie potrzeby.Aby uzyskać więcej informacji, zobacz Narzędzie bcp.

  • KEEPIDENTITY
    Określa, że tożsamość wartość lub wartości w pliku importowane dane są używane do identyfikacji kolumna.Jeśli KEEPIDENTITY nie jest określony, wartości tożsamości dla tej kolumna są weryfikowane, ale nie są importowane i SQL Server automatycznie przypisuje wartości unikatowe na podstawie wartości początkowej i wartości przyrostu określona podczas tworzenia tabela .Jeśli plik danych zawiera wartości dla identyfikacji kolumna w tabela lub widoku, użyj plik formatu Aby określić, że tożsamość kolumna w tabela lub widoku jest pomijany podczas importowania danych; SQL Serverautomatycznie przypisuje wartości unikatowe dla kolumna.Aby uzyskać więcej informacji, zobacz DBCC CHECKIDENT (Transact-SQL).

    Aby uzyskać więcej informacji, zobacz temat utrzymania identyfikacji wartości, zobacz Przechowywanie wartości tożsamości podczas zbiorczego, importowanie danych.

  • KEEPNULLS
    Określa puste kolumny powinny zachować wartość null podczas operacji importu zbiorczego, zamiast wartości domyślne dla kolumn wstawione.Aby uzyskać więcej informacji, zobacz Przechowywanie wartości null lub przy użyciu wartości domyślnych podczas importu zbiorczego.

  • KILOBYTES_PER_BATCH = kilobytes_per_batch
    Określa przybliżoną liczbę kilobajtów (KB) danych na partia jako kilobytes_per_batch.Domyślnie KILOBYTES_PER_BATCH jest nieznany.Aby uzyskać informacje dotyczące zagadnienia dotyczące wydajności Zobacz "Uwagi" w dalszej części tego tematu.

    Aby uzyskać więcej informacji, zobacz Zarządzanie instancje importu zbiorczego.

  • LASTROW**=**last_row
    Określa ostatni wiersz do załadowania.Wartość domyślna to 0, co wskazuje ostatni wiersz w pliku określone dane.

  • MAXERRORS = max_errors
    Określa maksymalną liczbę błędów składni dozwolonych w danych przed anulowaniem operacji importu zbiorczego.Każdy wiersz, który nie może być przywożone 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.

    Ostrzeżenie

    Opcja MAX_ERRORS nie ma zastosowania do ograniczenia kontroli lub konwertowania money i bigint typów danych.

  • ZAMÓWIENIA ({ column [ASC | DESC ] } [ ,... n ] )
    Określa sposób sortowania danych w pliku danych.Wydajność importu zbiorczego jest poprawiona, jeśli importowane dane są sortowane zgodnie z indeks klastrowany na tabelaewentualne.Plik danych jest posortowane w innej kolejności, która jest inna niż kolejność indeks klastrowany klucz lub Brak indeks klastrowany na tabelazamówienia klauzula jest ignorowana.Nazwy kolumna dostarczanych musi być nazwy prawidłowe kolumna wtabela obiekt docelowy. Domyślnie zbiorczej operacji wstawiania zakłada, że plik danych są nieuporządkowane.Dla zoptymalizowanego import zbiorczy SQL Server sprawdza też, że importowane dane są sortowane.

    Aby uzyskać więcej informacji, zobacz Kontrolowanie porządek sortowania podczas zbiorczego, importowanie danych.

  • n
    To symbol zastępczy, który wskazuje, można określić wiele kolumn.

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

    Domyślnie wszystkie dane w pliku danych jest wysyłana do serwera jako jedną transakcję i liczba wierszy w partia jest nieznany optymalizator kwerendy.Jeśli określisz ROWS_PER_BATCH (o wartości > 0) serwer używa tej wartości w celu zoptymalizowania operacji importu zbiorczego.Wartość określona dla ROWS_PER_BATCH powinny około rzeczywista liczba wierszy.Aby uzyskać informacje dotyczące zagadnienia dotyczące wydajności Zobacz "Uwagi" w dalszej części tego tematu.

    Aby uzyskać więcej informacji, zobacz Zarządzanie instancje importu zbiorczego.

  • ROWTERMINATOR ='row_terminator"
    Określa terminator wiersz ma być używany dla char i widechar plików danych.Terminator wiersza domyślną jest \r\n (znak nowego wiersza).Aby uzyskać więcej informacji, zobacz Określanie pola i terminatory wiersza.

  • TABLOCK
    Określa, że tabela-poziom blokada jest nabywany na czas trwania operacji importu zbiorczego.tabela może być załadowany jednocześnie przez wielu klientów Jeśli tabela zawiera indeksy nie TABLOCK została określona.Domyślnie, blokowania zachowanie zależy od opcji tabela tabela blokada ładowanie zbiorcze.Przytrzymanie się blokada przez czas trwania operacji importu zbiorczego zmniejsza blokada rywalizacja o tabela, w niektórych przypadkach można znacznie poprawić wydajność.Aby uzyskać informacje dotyczące zagadnienia dotyczące wydajności Zobacz "Uwagi" w dalszej części tego tematu.

    Aby uzyskać więcej informacji, zobacz Kontrolowanie zachowania blokowania dla importu zbiorczego.

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

    Błąd pliku jest tworzony, gdy polecenie jest wykonywane.Błąd występuje, jeżeli plik już istnieje.Ponadto kontrola plik, 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.Zaraz po poprawieniu błędów mogą być ładowane dane.

Uwagi

Porównanie ZBIORCZEGO można WSTAWIĆ w instrukcjaINSERT...WYBIERZ * Z OPENROWSET(BULK...) instrukcjai bcp polecenia, zobacz Dotyczące importu zbiorczego i operacji wywozowych luzem.

Aby uzyskać informacje dotyczące przygotowywania danych do import zbiorczy, takie jak wymagania dotyczące importowania danych z pliku danych CSV, zobacz Przygotowywanie danych luzem wywozu lub przywozu.

WSTAW luzem instrukcja może być wykonywany w obrębie transakcji zdefiniowanej przez użytkownika.Wycofywanie transakcji zdefiniowanej przez użytkownika, używa WSTAW luzem instrukcja i BATCHSIZE klauzula do importowania danych do tabela lub widoku za pomocą wielu instancji wycofuje wszystkie instancje wysyłane do SQL Server.

Informacje, kiedy wstawienie wiersza operacje wykonywane przez import zbiorczy są rejestrowane w dzienniku transakcji, zobacz Wymagania wstępne dotyczące minimalnych logowanie importu zbiorczego.

W SQL Server 2005 i nowsze wersje, WSTAW luzem wymusza nowych, bardziej rygorystycznych kontroli danych danych i sprawdzania poprawności danych odczytany z pliku, który może spowodować istniejących skryptów kończy się niepowodzeniem, gdy są wykonywane na nieprawidłowe dane.Na przykład WSTAW luzem teraz weryfikuje, czy:

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

  • Dane znakowe Unicode ma długość nawet bajt.

Formularze mogą być nieprawidłowe dane luzem przywożonych w starszych wersjach SQL Server, nie może załadować teraz.W starszych wersjach SQL Server, błąd nie występuje, dopóki klient próbuje uzyskać dostęp nieprawidłowe dane.Bardziej rygorystyczne sprawdzanie poprawności minimalizuje lepiej przewidzieć efekty podczas badania po import zbiorczydane.

Zagadnienia dotyczące wydajności

Jeżeli liczba stron do opróżnienia w jednej partia przekracza próg wewnętrzny, pełne skanowanie pula buforów mogą wystąpić identyfikować strony, które Flush podczas partia zatwierdza.To skanowanie pełne mogą przeciążać wydajność importu zbiorczego.Prawdopodobnie przypadek przekraczających próg wewnętrzny występuje duże pula buforów w połączeniu z powolnych podsystemu We/Wy.W celu uniknięcia przepełnienia buforu na dużych maszyn, albo nie należy używać wskazówki TABLOCK (co spowoduje usunięcie optymalizacje luzem) lub mniejszy rozmiar partia (który zachowuje optymalizacje luzem).

Ponieważ różne komputery, zaleca się przetestowanie różnych rozmiarach partia z ładowania danych, aby dowiedzieć się, jaki najlepiej odpowiada potrzebom użytkownika.

Eksportowanie luzem lub importowanie dokumentów SQLXML

eksport zbiorczy lub importu danych SQLXML użyj jednej z następujących typów danych w plik formatu:

Typ danych

Efekt

SQLCHAR lub SQLVARYCHAR

Dane są przesyłane klient strona kodowa lub w strona kodowa implikowane przez sortowanie).Efekt jest taki sam, jak określanie DATAFILETYPE ="char" bez określania plik formatu.

SQLNCHAR lub SQLNVARCHAR

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

SQLBINARY lub SQLVARYBIN

Dane są przesyłane bez żadnej konwersji.

Konwersje typów ciąg na dziesiętne

W SQL Server 2005 i jego nowsze wersje, ciąg-do-konwersje typów dziesiętny używany w zbiorczej WSTAW wykonaj te same reguły, Transact-SQL PRZEKONWERTOWAĆ funkcja, która odrzuca ciągów reprezentujących wartości liczbowe, korzystających z notacji naukowej.W związku z tym WSTAW luzem traktuje takie ciągi jako nieprawidłowe wartości i raportuje błędy konwersji.

Ostrzeżenie

W SQL Serverwwersja 7.0 i SQL Server 2000, WSTAW luzem obsługuje ciąg-do-dziesiętny typ konwersji ciągów znaków reprezentujących wartości numeryczne, które używają notacja naukowa.

Aby obejść ten problem, użyj plik formatu do import zbiorczy notacja naukowa float danych do dziesiętnego kolumna.W plik formatuwyraźnie opisać kolumna jako real lub float danych.Aby uzyskać więcej informacji o tych typach danych, zobacz Pływak i rzeczywistym (języka Transact-SQL).

Ostrzeżenie

Format plików reprezentują real danych jako SQLFLT4 Typ danych i float danych jako SQLFLT8 typu danych.Aby uzyskać więcej informacji dotyczących plików w formacie XML, zobacz Składnia schematu dla plików w formacie XML; lub uzyskać informacje dotyczące plików w formacie XML inny niż Określanie typu magazynu plików przez używanie bcp.

Przykład importowanie wartość numeryczną, która używa notacji naukowej

W tym przykładzie użyto w poniższej tabela:

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

Użytkownik chce import zbiorczy dane do t_float tabela.Notacja naukowa zawiera plik danych, C:\t_float-c.dat float danych; na przykład:

8.0000000000000002E-28.0000000000000002E-2

Jednak WSTAWIĆ luzem nie można zaimportować te dane bezpośrednio do t_float, ponieważ jego drugiej kolumna c2, korzysta z decimal typu danych.Dlatego konieczne jest plik formatu .Notacja naukowa musi być mapowana w plik formatu float danych do formatu dziesiętnego kolumna c2.

Używa następującego plik formatu SQLFLT8 Typ danych 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 plik formatu (przy użyciu nazwy pliku C:\t_floatformat-c-xml.xml) Aby importować dane z badań do badania tabela, 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

Wymaga uprawnień do WSTAWIANIA i ADMINISTROWAĆ operacje zbiorcze.Ponadto ALTER TABLE uprawnienie jest wymagane, jeśli spełniony jest jeden lub więcej z następujących czynności:

  • Istnieją ograniczenia i nie określono opcję CHECK_CONSTRAINTS.

    Ostrzeżenie

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

  • Istnieją wyzwalacze i nie określono opcję FIRE_TRIGGER.

    Ostrzeżenie

    Wyzwalacze nie jest uruchamiany domyślnie.Aby jawnie ognia wyzwalaczy, należy użyć opcji FIRE_TRIGGER.

  • Opcja KEEPIDENTITY tożsamości wartości celnej w przywozie z pliku danych.

Delegowanie konta zabezpieczeń (Personifikacja)

Jeśli SQL Server użytkownik jest zalogowany przy użyciu uwierzytelniania systemu Windows, może odczytywać tylko te pliki, które są dostępne dla konta użytkownika, niezależnie od profilu zabezpieczeń SQL Server procesu.

Podczas wykonywania zbiorczej WSTAW instrukcja przy użyciu polecenie sqlcmd lub osql, z jednego komputera, wstawianie danych do SQL Server na drugim komputerze i określając data_file na trzecim komputerze przy użyciu UNC ścieżkamoże się pojawić błąd 4861.

Aby rozwiązać ten problem, użyj SQL Server uwierzytelniania i określ SQL Server logowania, który używa profilu zabezpieczeń SQL Server konta, procesu lub skonfigurować system Windows, aby włączyć delegowanie zabezpieczeń konta.Aby uzyskać informacje dotyczące sposobu włączania konto użytkownika ma być zaufany w kwestii delegowania zobacz Pomoc systemu Windows.

Aby uzyskać więcej informacji na temat tego i inne względy bezpieczeństwa dla przycisku WSTAW luzem, zobacz Importowanie danych luzem za pomocą ZBIORCZYM WSTAWIANIEM lub OPENROWSET(BULK...).

Przykłady

A.Aby importować dane z pliku przy użyciu potoków

Poniższy przykład importuje szczegółowe informacje o zamówieniu w AdventureWorks2008R2.Sales.SalesOrderDetail tabela z pliku danych określone za pomocą (potok|) jako terminator pole i |\n jako terminator wiersza.

BULK INSERT AdventureWorks2008R2.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 argumentu.

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

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

Poniższy przykład importuje plik, który korzysta wysuwu wiersza jako terminator wiersza, takich jak dane wyjściowe systemu UNIX:

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

Dodatkowe przykłady