SQL Server BCP -verktøy

SQL Server BCP -verktøy

SQL Server er en av de mest omfattende og robuste SQL -databasene i moderne tid. Ikke bare kan den håndtere latterlige datamengder, men det gir også kraftige verktøy som gjør det å jobbe med SQL -databaser enklere og veldig hyggelig.

Dette innlegget vil dekke et av disse verktøyene i SQL Server -økosystemet; BCP -verktøy. Vi vil diskutere BCP -verktøyet, installasjonen og forskjellige scenarier du kan bruke.

La oss hoppe inn.

Hva er BCP -verktøyet?

Bulk Copy-program, eller BCP for kort, er et kraftig kommandolinjeverktøy som lar deg bulk kopiere data mellom to eller flere SQL-serverforekomster eller en datafil i et spesifikt format.

Følgende er noen av handlingene du kan utføre ved hjelp av BCP -verktøyet i SQL Server:

  1. Bulkdataeksport fra en tabell til en spesifikk datafil i et definert format.
  2. Bulkdataeksport fra en spørring til en angitt datafil.
  3. BUK dataimport fra datafil til en SQL Server -tabell.

En annen fordel med BCP-verktøyet er at det ikke krever at du er kjent med Transact-SQL-kommandoen. Når du eksporterer data fra en spørring ved hjelp av QueryOption-parameteren, må du imidlertid bruke Transact-SQL-kommandoer.

Installere BCP -verktøyet i Windows

Avhengig av SQL -serveren installert og installasjonsmetoden, kan det hende du må installere BCP -verktøyet manuelt. For å installere, last ned BCP -verktøyet fra lenken nedenfor:

https: // gå.Microsoft.com/fwlink/?LinkId = 2142258 (x64)

https: // gå.Microsoft.com/fwlink/?LinkId = 2142257 (x86)

Merk: SQL Server-kommandolinjeverktøyene er pakket som standard i SQL Server 2019 og over.

Når nedlastingen er klar, må du åpne installasjonspakken og klikke ved siden av for å begynne prosessen.

Godta den oppgitte programvarelisensen og fortsett.

Til slutt, sett installasjonsalternativet for installasjonsprogrammet for å konfigurere SQL Server-kommandolinjeverktøyene på maskinen din.

For å bekrefte at BCP -verktøyet er tilgjengelig, start ledeteksten og kjør kommandoen:

bcp -v

Kommandoen vil returnere den installerte BCP -versjonen som:

BCP - Bulk Copy -program for Microsoft SQL Server.
Copyright (C) Microsoft Corporation. Alle rettigheter forbeholdt.
Versjon: 15.0.2000.5

For å se alle kommandoalternativene, kjør BCP -kommandoen uten noen parametere:

$ BCP

Produksjon:

Bruk: BCP DBTABLE | spørring i | ut | spørring | Format Datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-l lastrow] [-b BatchSize]
[-n naturlig type] [-c karaktertype] [-w bred karaktertype]
[-N Keep Non-Text Native] [-V filformatversjon] [-Q sitert identifikator]
[-C kodeside spesifikasjon] [-t feltterminator] [-r Row Terminator]
[-i inputfile] [-o outfile] [-a packetSize]
[-S servernavn] [-u brukernavn] [-p passord]
[-T Trusted Connection] [-V versjon] [-R Regional Aktiver]
[-K hold nullverdier] [-e hold identitetsverdier] [-G Azure Active Directory Authentication]
[-h "last hint"] [-X generer XML-formatfil]
[-D databasenavn] [-K applikasjonsintensjon] [-l innloggingstidspunkt]

Kommandoen gir omfattende alternativer og parametere for forskjellige operasjoner du ønsker å utføre.

SQL Server Eksporttabell til datafil ved hjelp av BCP -verktøyet

Eksemplet nedenfor illustrerer ved hjelp av BCP -verktøyet for å eksportere tabelloppføringene fra Resolver -databasen. Kommandoen lagrer tabellen i oppføringene.Dat datafil.

BCP -oppføringer "C: \ Brukere \ Bruker \ Dokumenter \ oppføringer.dat "-c -t -d resolver -u brukernavn -t

La oss bryte ned alternativene i kommandoen ovenfor.

Vi starter med å påkalle BCP -verktøyet, etterfulgt av navnet på tabellen vi ønsker å eksportere.

  1. Out -parameteren lar oss spesifisere banen til datafilen.
  2. -C lar verktøyet utføre eksportoperasjonen ved hjelp av karakterdatatypen. Dette brukes bare til lagringstyper uten prefikser og med \ t -karakteren som separator.
  3. -t spesifiserer feltterminatoren.
  4. -D angir måldatabasenavnet.
  5. -U brukernavnet som skal brukes til kobling til serveren.
  6. -T Bruk pålitelig tilkobling.

Kommandoen over skal returnere utdataene som:

Startkopi ..
6 rader kopiert.
Nettverkspakkestørrelse (byte): 4096
Klokketid (MS.) Totalt: 1 gjennomsnitt: (6000.00 Rader per sekund.)

Forsikre deg om at banen til måldatafilen eksisterer før du utfører kommandoen.

SQL Server Eksporter resultatene fra en spørring til datafil

Vi kan også eksportere resultatene av en gitt spørring, som vist i eksemplet nedenfor:

BCP 'Select * From Entries' Queryout "C: \ Brukere \ Bruker \ Documents \ Query.data "-t -d resolver -c -t

Spørringsalternativet lar oss lagre resultatet av en Transact-SQL-spørring til en spesifisert fil. Vi vedlegger spørringen vi ønsker å utføre i et par anførselstegn for å unngå konflikt med parametrene til BCP -kommandoen.

SQL Server Importer datafil til tabell

Hvis du har en datafil, kan du importere den til en tabell eller annen, som illustrert nedenfor.

Begynn med å lage en enkel database.

Drop Database hvis eksisterer BCP_DEMO;
Opprett database BCP_DEMO;
UAE BCP_DEMO;

Deretter lager du en tabell med en lignende struktur som dataene i filen:

Lag tabellprøver (
id int ikke null identitet (1,
1) Primærnøkkel,
Server_name varchar (50),
server_address varchar (255) ikke null,
kompresjon_metod varchar (100) standard 'ingen',
size_on_disk float ikke null,
Size_Compription Float,
total_records int ikke null,
init_date dato
);

Til slutt, importer datafilen til tabellen som:

BCP BCP_DEMO.dbo.Prøver i 'C: \ Brukere \ Bruker \ Dokumenter \ oppføringer.dat '-c -t

Dette bør hente dataene fra datafilen inn i tabellen. Et eksempelutgang:

Startkopi ..
SqlState = s1000, innfødte årror = 0
Feil = [Microsoft] [ODBC Driver 17 for SQL Server] Uventet EOF oppstått i BCP Data-File
0 rader kopiert.
Nettverkspakkestørrelse (byte): 4096
Klokketid (MS.) Totalt: 1

Og du har importert dataene fra datafilen.

Reisens slutt

Denne artikkelen lærte deg det grunnleggende ved å bruke BCP -verktøyet for å bulke importere og eksportere data til og fra SQL Server -forekomster og datafiler.

Takk for at du tok en spasertur med oss ​​i BCP -verktøyfunksjonalitetene. Utforsk gjerne dokumentene for mer omfattende informasjon. Vi sees på den neste.