SQL Server Bulk Insert

SQL Server Bulk Insert
Som navnet antyder, refererer bulkinnsats til en teknikk for å sette inn en stor mengde data raskt fra en tekst- eller CSV -fil til en SQL Server -tabell eller visning. Det er en veldig nyttig funksjon når du utfører gjenoppretting fra sikkerhetskopiering, da det bare krever at du skal takle den blotte minimumskonfigurasjonen. La oss diskutere hvordan vi kan utføre bulkinnsats i SQL Server.

Krav

For å følge med denne artikkelen, trenger du:

  1. SQL Server -forekomst.
  2. Eksempel på CSV eller tekstfil.

For illustrasjon har vi en CSV -fil som inneholder 1000 poster. Du kan laste ned en eksempelfil i lenken nedenfor:

SQL Server Eksempel på datalink

Trinn 1: Opprett database

Det første trinnet er å opprette en database for å importere CSV -filen. For vårt eksempel vil vi ringe databasen.

bulk_insert_db.

Vi kan en spørring som:

Opprett database BULK_Insert_db;

Når vi har databaseoppsettet, kan vi fortsette og sette inn de nødvendige dataene.

Importer CSV -fil ved hjelp av SQL Server Management Studio

Vi kan importere CSV -filen til databasen ved hjelp av SSMS importveiviseren. Åpne SQL Server Management Studio og logg inn på serverforekomsten.

I venstre rute, velg databasen din og høyreklikk.

Naviger til oppgaven -> Importer flat fil.

Dette lanserer importveiviseren og lar deg importere CSV -filen din til databasen din.

Klikk Neste for å fortsette til neste trinn. I neste del, velg plasseringen av CSV -filen din, angi tabellnavnet og velg skjemaet.

Du kan legge igjen skjemalternativet som standard.

Klikk på ved siden av forhåndsvisning av dataene. Forsikre deg om at dataene er gitt av valgt CSV -fil.

Neste trinn lar deg endre forskjellige aspekter av tabellkolonnene. La oss for vårt eksempel angi ID -kolonnen som den primære nøkkelen og tillate null i landskolonnen.

Med alt satt, klikk Fullfør for å starte importprosessen. Du vil få suksess hvis dataene er importert med hell.

For å bekrefte at dataene settes inn i databasen, spør databasen som:

Bruk bulk_insert_db;
Velg Topp 10 * fra BULK_Insert_Sample;

Dette skal returnere de første 10 postene fra CSV -filen.

Bulkinnsats ved hjelp av T-SQL

I noen tilfeller får du ikke tilgang til et GUI -grensesnitt for å importere og eksportere data. Derfor er det viktig å lære hvordan vi kan utføre ovennevnte operasjon rent ut av SQL -spørsmål.

Det første trinnet er å konfigurere databasen. For denne kan vi kalle det bulk_insert_db_copy:

Opprett database BULK_Insert_db_copy;

Dette skulle komme tilbake:

Kommandoer fullført.
Fullføringstid:

Neste trinn er å sette opp databaseskjemaet vårt. Vi vil referere til CSV -filen for å finne ut hvordan vi lager tabellen vår.

Forutsatt at vi har en CSV -fil med overskriftene som:

Vi kan modellere tabellen som vist:

Lag tabell bulk_insert_table (
id int primær nøkkel ikke null identitet (100,1),
FIRSTNAME VARCHAR (50) IKKE NULL,
etternavn varchar (50) ikke null,
E -post varchar (255) ikke null,
land varchar (50),
yrke varchar (50)
);

Her lager vi en tabell med kolonnene som overskriftene til CSV.

MERK: Siden ID -verdien starter på A100 og øker med 1, bruker vi identiteten (100,1) egenskapen.

Lær mer her: https: // linuxhint.com/reset-identitet-kolonne-SQL-server/

Det siste trinnet er å sette inn dataene. Et eksempel på spørring er som vist nedenfor:

Bulk Insert Bulk_Insert_table
fra ''
med (firstrow = 2,
feltterminator = ',',
rowterminator = '\ n'
);

Her bruker vi bulkinnsatsspørsmålet etterfulgt av navnet på tabellen som vi ønsker å sette inn dataene. Neste er fra uttalelsen etterfulgt av banen til CSV -filen.

Til slutt bruker vi med leddet for å spesifisere importegenskaper. Den første er Firstrow som forteller SQL Server at dataene starter på rad 2. Dette er nyttig hvis CSV -filen din inneholder dataoverskrift.

Den andre delen er FieldTerminator som spesifiserer avgrenseren for CSV -filen din. Husk at det ikke er noen standard for CSV -filer, og det kan derfor inkludere andre avgrensere som mellomrom, perioder osv.

Den tredje delen er Rowterminator som beskriver en post i CSV -filen. I vårt tilfelle en linje = en post.

Å kjøre koden ovenfor skal returnere:

(1000 rader berørt)
Fullføringstid:

Du kan bekrefte at dataene eksisterer ved å kjøre spørringen:

Velg Topp 10 * fra BULK_Insert_Table;

Dette skulle komme tilbake:

Og med det har du vellykket satt inn en bulk CSV -fil til SQL Server -databasen.

Konklusjon

Denne guiden undersøker hvordan du setter inn data i en SQL Server -databasetabell eller visning. Sjekk ut vår andre gode opplæring på SQL Server:

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

Happy Sql!!!