SQL Server Bulk Insert

SQL Server Bulk Insert
Jak sama nazwa wskazuje, Bulk Insert odnosi się do techniki szybkiego wkładania dużej ilości danych z pliku tekstowego lub CSV do tabeli lub widoku serwera SQL. Jest to bardzo przydatna funkcja podczas wykonywania przywracania z tworzenia kopii zapasowych, ponieważ wymaga tylko radzenia sobie z absolutną konfiguracją. Omówmy, w jaki sposób możemy wykonać wkładkę luzem w SQL Server.

Wymagania

Aby śledzić ten artykuł, będziesz potrzebować:

  1. Instancja SQL Server.
  2. Przykładowy plik CSV lub tekst.

W celu ilustracji mamy plik CSV zawierający 1000 rekordów. Możesz pobrać przykładowy plik w poniższym linku:

SQL SERVER PREKTUALNY LINK DATU

Krok 1: Utwórz bazę danych

Pierwszym krokiem jest utworzenie bazy danych, w której można zaimportować plik CSV. W naszym przykładzie wywołamy bazę danych.

BULK_INSERT_DB.

Możemy zapytać jako:

Utwórz bazę danych bulk_insert_db;

Po konfiguracji bazy danych możemy kontynuować i wstawić wymagane dane.

Zaimportuj plik CSV za pomocą SQL Server Management Studio

Możemy zaimportować plik CSV do bazy danych za pomocą Kreatora importu SSMS. Otwórz SQL Server Management Studio i zaloguj się do instancji serwera.

Na panelu po lewej stronie wybierz bazę danych i kliknij prawym przyciskiem myszy.

Przejdź do zadania -> Zaimportuj plik płaskiego.

To uruchomi Kreatora importu i pozwoli ci zaimportować plik CSV do bazy danych.

Kliknij następny, aby przejść do następnego kroku. W następnej części wybierz lokalizację pliku CSV, ustaw nazwę tabeli i wybierz schemat.

Możesz zostawić opcję schematu jako domyślną.

Kliknij Dalej, aby wyświetlić podgląd danych. Upewnij się, że dane są dostarczane przez wybrany plik CSV.

Następny krok pozwoli na modyfikację różnych aspektów kolumn tabeli. W naszym przykładzie ustawmy kolumnę identyfikatora jako klucz podstawowy i zeznajmy z NULL w kolumnie krajowej.

Po zakończeniu wszystkiego kliknij, aby rozpocząć proces importowania. Odniesiesz sukces, jeśli dane zostały pomyślnie zaimportowane.

Aby potwierdzić, że dane są wstawiane do bazy danych, sprawdź bazę danych jako:

Użyj Bulk_Insert_DB;
Wybierz Top 10 * Z Bulk_Insert_Sample;

Powinno to zwrócić pierwsze 10 rekordów z pliku CSV.

Wkładka masowa za pomocą T-SQL

W niektórych przypadkach nie otrzymujesz dostępu do interfejsu GUI w celu importowania i eksportowania danych. Dlatego ważne jest, aby dowiedzieć się, w jaki sposób możemy wykonać powyższą operację wyłącznie z zapytań SQL.

Pierwszym krokiem jest skonfigurowanie bazy danych. Dla tego możemy nazwać to Bulk_Insert_DB_Copy:

Utwórz bazę danych bulk_insert_db_copy;

To powinno powrócić:

Polecenia zakończone pomyślnie.
Czas realizacji:

Następnym krokiem jest skonfigurowanie naszego schematu bazy danych. Będziemy odnosić się do pliku CSV, aby ustalić, jak utworzyć naszą tabelę.

Zakładając, że mamy plik CSV z nagłówkami jako:

Możemy modelować tabelę, jak pokazano:

Utwórz tabelę bulk_insert_table (
Id int klucz podstawowy, a nie zerowa tożsamość (100,1),
FirstName varchar (50) nie null,
LastName varchar (50) nie null,
e -mail varchar (255) nie null,
Country Varchar (50),
zawód Varchar (50)
);

Tutaj tworzymy tabelę z kolumnami jako nagłówki CSV.

NOTATKA: Ponieważ wartość identyfikacyjna zaczyna się od A100 i wzrasta o 1, używamy właściwości tożsamości (100,1).

Dowiedz się więcej tutaj: https: // linuxhint.com/reset-tożsamość-kolumn-sql-server/

Ostatnim krokiem jest wstawienie danych. Przykładowe zapytanie jest jak pokazano poniżej:

Bulk wstaw Bulk_Insert_Table
z ''
z (Firstrow = 2,
fieldterminator = ',',
Rowterminator = '\ n'
);

Tutaj używamy zapytania do wkładki masowej, a następnie nazwy tabeli, do której chcemy wstawić dane. Dalej jest instrukcja, a następnie ścieżka do pliku CSV.

Na koniec używamy klauzuli z określeniem właściwości importu. Pierwszy to Firstrow, który mówi SQL Server, że dane zaczynają się w wierszu 2. Jest to przydatne, jeśli plik CSV zawiera nagłówek danych.

Druga część to FieldMinator, który określa ograniczenie pliku CSV. Należy pamiętać, że nie ma standardu dla plików CSV, dlatego może obejmować inne ograniczniki, takie jak przestrzenie, okresy itp.

Trzecia część to Rowterminator, który opisuje jeden rekord w pliku CSV. W naszym przypadku jedna linia = jeden rekord.

Uruchomienie powyższego kodu powinno zwrócić:

(1000 rzędów)
Czas realizacji:

Możesz sprawdzić, czy dane istnieją, uruchamiając zapytanie:

Wybierz Top 10 * Z Bulk_Insert_Table;

To powinno powrócić:

I z powodzeniem włożyłeś masowy plik CSV do bazy danych SQL Server.

Wniosek

W tym przewodniku eksploruje sposób, w jaki sposób wstawić dane do tabeli bazy danych SQL Server lub widok. Sprawdź nasz inny świetny samouczek na SQL Server:

https: // linuxhint.com/kategoria/ms-sql-server/

Szczęśliwy SQL!!!