Utilità BCP SQL Server

Utilità BCP SQL Server

SQL Server è uno dei database SQL più estesi e robusti dell'era moderna. Non solo può gestire quantità ridicole di dati, ma fornisce anche potenti strumenti che rendono più semplice e divertente il lavoro con i database SQL.

Questo post coprirà uno di questi strumenti nell'ecosistema SQL Server; Utilità BCP. Discuteremo l'utilità, l'installazione e vari scenari BCP che puoi utilizzare.

Saltiamo dentro.

Qual è l'utilità BCP?

Il programma di copia in blocco, o BCP in breve, è una potente utilità della linea di comando che consente di copiare i dati in blocco tra due o più istanze del server SQL o un file di dati in un formato specifico.

Di seguito sono riportate alcune delle azioni che è possibile eseguire utilizzando l'utilità BCP in SQL Server:

  1. Esportazione dei dati in blocco da una tabella a un file di dati specifico in un formato definito.
  2. Esportazione dei dati in blocco da una query a un file di dati impostati.
  3. BUK Data Importa dal file di dati a una tabella SQL Server.

Un altro vantaggio dell'utilità BCP è che non richiede di avere familiarità con il comando Transact-SQL. Tuttavia, quando si esporta i dati da una query utilizzando il parametro di queryoption, è necessario utilizzare comandi Transact-SQL.

Installazione dell'utilità BCP in Windows

A seconda del server SQL installato e del metodo di installazione, potrebbe essere necessario installare manualmente l'utilità BCP. Per installare, scarica l'utilità BCP dal link in basso:

https: // vai.Microsoft.com/fwlink/?LinkID = 2142258 (x64)

https: // vai.Microsoft.com/fwlink/?LinkID = 2142257 (x86)

Nota: le utility di comando SQL Server sono confezionate per impostazione predefinita in SQL Server 2019 e superiore.

Una volta che il download è pronto, apri il pacchetto di installazione e fai clic su Avanti per iniziare il processo.

Accettare la licenza software fornita e procedere.

Infine, impostare l'opzione Installa per l'installatore per configurare gli strumenti di riga di comando SQL Server sul computer.

Per confermare che l'utilità BCP è disponibile, avviare il prompt dei comandi ed eseguire il comando:

BCP -V

Il comando restituirà la versione BCP installata come:

BCP - Programma di copia in blocco per Microsoft SQL Server.
Copyright (c) Microsoft Corporation. Tutti i diritti riservati.
Versione: 15.0.2000.5

Per visualizzare tutte le opzioni di comando, eseguire il comando BCP senza alcun parametro:

$ BCP

Produzione:

Utilizzo: BCP dbtable | query in | fuori | queryout | Format DataFile
[-M Maxerrors] [-f FormatFile] [-e errfile]
[-F Firstrow] [-l Lastrow] [-b BatchSize]
[-n tipo nativo] [-c Tipo di carattere] [-w Tipo di carattere largo]
[-N Keep non text nativo] [-v Versione in formato file] [-q citato Identificatore]
[-C Codice Pagina Specificatore] [-t campo Terminator] [-r Row Terminator]
[-i inputfile] [-o outfile] [-a pacchetti]
[-S Nome server] [-u Nome utente] [-p Password]
[-T Connection fidate] [-v Versione] [-r regional Abilita]
[-k mantieni i valori null] [-e mantieni i valori di identità] [-G azure Active Directory Autenticazione]
[-H "caricamento suggerimenti"] [-x genera file di formato XML]
[-D Nome database] [-k Applicazione intento] [-l Timeout di accesso]

Il comando fornisce ampie opzioni e parametri per varie operazioni che si desidera eseguire.

Tabella di esportazione SQL Server in file di dati utilizzando l'utilità BCP

L'esempio seguente illustra utilizzando l'utilità BCP per esportare le voci della tabella dal database Resolver. Il comando memorizza la tabella nelle voci.File di dati DAT.

Voci BCP "C: \ Users \ User \ Documents \ Voci.Dat "-c -t -d resolver -u nome utente -t

Rompi le opzioni nel comando sopra.

Iniziamo invocando l'utilità BCP, seguita dal nome della tabella che desideriamo esportare.

  1. Il parametro OUT ci consente di specificare il percorso del file di dati.
  2. -C consente all'utilità di eseguire l'operazione di esportazione utilizzando il tipo di dati dei caratteri. Questo viene utilizzato solo per i tipi di archiviazione senza prefissi e con il carattere \ t come separatore.
  3. -t Specifica il Terminator Field.
  4. -D Imposta il nome del database di destinazione.
  5. -U il nome utente da utilizzare per la connessione al server.
  6. -T Utilizzare la connessione affidabile.

Il comando sopra dovrebbe restituire l'output come:

Copia iniziale ..
6 righe copiate.
Dimensione dei pacchetti di rete (byte): 4096
Tempo dell'orologio (MS.) Totale: 1 media: (6000.00 file al secondo.)

Assicurarsi che il percorso del file di dati target esista prima di eseguire il comando.

SQL Server Esporta i risultati di una query al file di dati

Possiamo anche esportare i risultati di una determinata query, come mostrato nella query di esempio di seguito:

BCP 'SELEZIONA * DA QUERYOUT "C: \ Users \ User \ Documents \ Query.dati "-t -d resolver -c -t

L'opzione queryout ci consente di archiviare il risultato di una query SQL Transact in un file specificato. Alleggiamo la query che desideriamo eseguire in una coppia di virgolette per evitare il conflitto con i parametri del comando BCP.

SQL Server Importa file di dati nella tabella

Se si dispone di un file di dati, è possibile importarlo in una tabella o in un altro, come illustrato di seguito.

Inizia creando un database semplice.

Drop database se esiste bcp_demo;
Crea database bcp_demo;
EAIE BCP_DEMO;

Quindi, crea una tabella con una struttura simile ai dati nel file:

Crea campioni di tabelle (
id int non null Identity (1,
1) Chiave primaria,
server_name varchar (50),
server_address varchar (255) non null,
compressione_method varchar (100) predefinito "nessuno",
size_on_disk float non null,
size_ float compresso,
total_records int non null,
Data init_date
);

Infine, importa il file di dati nella tabella come:

BCP BCP_DEMO.dbo.campioni in 'c: \ utenti \ user \ documenti \ voci.dat '-c -t

Questo dovrebbe recuperare i dati dal file di dati nella tabella. Un output di esempio:

Copia iniziale ..
Sqlstate = s1000, nativeterror = 0
Errore = [Microsoft] [Driver ODBC 17 per SQL Server] EOF imprevisto riscontrato nel file di dati BCP
0 righe copiate.
Dimensione dei pacchetti di rete (byte): 4096
Tempo dell'orologio (MS.) Totale: 1

E hai importato correttamente i dati dal file di dati.

End del viaggio

Questo articolo ti ha insegnato i fondamenti dell'utilizzo dell'utilità BCP per i dati di importazione ed esportazione di bulking da e verso le istanze e i file di dati SQL Server.

Grazie per aver fatto una passeggiata con noi nelle funzionalità dell'utilità BCP. Sentiti libero di esplorare i documenti per informazioni più ampie. Ci vediamo alla prossima.