SQL Server Bulk Insert

SQL Server Bulk Insert
Come suggerisce il nome, Bulk Insert si riferisce a una tecnica di inserimento rapidamente di una grande quantità di dati da un file di testo o CSV in una tabella SQL Server o Visualizza. È una caratteristica molto utile quando si esegue il ripristino dal backup, in quanto richiede solo di gestire la configurazione minima indispensabile. Discutiamo di come possiamo eseguire insert bulk in SQL Server.

Requisiti

Per seguire questo articolo, avrai bisogno di:

  1. SQL Server Istance.
  2. Esempio di CSV o file di testo.

Per illustrazione, abbiamo un file CSV contenente 1000 record. Puoi scaricare un file di esempio nel link qui sotto:

Link dei dati di esempio SQL Server

Passaggio 1: creare database

Il primo passo è creare un database in cui importare il file CSV. Per il nostro esempio, chiameremo il database.

bulk_insert_db.

Possiamo una domanda come:

Crea database bulk_insert_db;

Una volta che abbiamo l'impostazione del database, possiamo procedere e inserire i dati richiesti.

Importa file CSV utilizzando SQL Server Management Studio

Possiamo importare il file CSV nel database utilizzando la procedura guidata SSMS. Apri SQL Server Management Studio e accedi all'istanza del server.

Nel riquadro della mano sinistra, selezionare il database e fare clic con il tasto destro.

Passare all'attività -> Importa file flat.

Ciò lancerà la procedura guidata di importazione e consentirà di importare il tuo file CSV nel tuo database.

Fai clic su Avanti per procedere al passaggio successivo. Nella parte successiva, seleziona la posizione del file CSV, imposta il nome della tabella e seleziona lo schema.

Puoi lasciare l'opzione Schema come predefinito.

Fare clic su Avanti per visualizzare in anteprima i dati. Assicurarsi che i dati siano forniti dal file CSV selezionato.

Il prossimo passo consentirà di modificare vari aspetti delle colonne della tabella. Per il nostro esempio, impostiamo la colonna ID come chiave primaria e consentiamo NULL nella colonna del paese.

Con tutto impostato, fare clic su Fine per avviare il processo di importazione. Otterrai successo se i dati sono stati importati correttamente.

Per confermare che i dati vengono inseriti nel database, interrogare il database come:

Usa bulk_insert_db;
Seleziona top 10 * da bulk_insert_sample;

Questo dovrebbe restituire i primi 10 record dal file CSV.

Inserto di massa con T-SQL

In alcuni casi, non si ottiene l'accesso a un'interfaccia GUI per l'importazione e l'esportazione di dati. Quindi, è importante imparare come possiamo eseguire l'operazione di cui sopra puramente fuori dalle domande SQL.

Il primo passo è configurare il database. Per questo, possiamo chiamarlo bulk_insert_db_copy:

Crea database bulk_insert_db_copy;

Questo dovrebbe tornare:

Comandi completati correttamente.
Tempo di completamento:

Il prossimo passo è impostare il nostro schema di database. Ci faremo riferimento al file CSV per determinare come creare la nostra tabella.

Supponendo che abbiamo un file CSV con le intestazioni come:

Possiamo modellare la tabella come mostrato:

Crea table Bulk_insert_table (
Id Int Primary Key non Null Identity (100,1),
FirstName Varchar (50) non null,
LastName Varchar (50) non null,
Email Varchar (255) non NULL,
Country Varchar (50),
Profession Varchar (50)
);

Qui, creiamo una tabella con le colonne come intestazioni del CSV.

NOTA: Poiché il valore ID inizia a A100 e aumenta di 1, utilizziamo la proprietà di identità (100,1).

Ulteriori informazioni qui: https: // linuxhint.com/reset-Identity-Column-Sql-Server/

L'ultimo passo è inserire i dati. Una query di esempio è come mostrato di seguito:

Inserisci Bulk Bulk_insert_Table
da ''
con (Firstrow = 2,
fieldterminator = ',',
RowTerminator = '\ n'
);

Qui, utilizziamo la query di insert in blocco seguito dal nome della tabella a cui desideriamo inserire i dati. Il prossimo è l'istruzione Data seguita dal percorso del file CSV.

Infine, utilizziamo la clausola per specificare le proprietà di importazione. Il primo è Firstrow che dice a SQL Server che i dati iniziano alla riga 2. Questo è utile se il tuo file CSV contiene intestazione dei dati.

La seconda parte è FieldTerminator che specifica il delimitatore per il tuo file CSV. Tieni presente che non esiste uno standard per i file CSV, quindi può includere altri delimitatori come spazi, periodi, ecc.

La terza parte è RowTerminatore che descrive un record nel file CSV. Nel nostro caso una riga = un record.

L'esecuzione del codice sopra dovrebbe restituire:

(1000 righe interessate)
Tempo di completamento:

È possibile verificare che i dati esistano eseguendo la query:

Seleziona top 10 * da bulk_insert_table;

Questo dovrebbe tornare:

E con ciò, hai inserito correttamente un file CSV in blocco nel database SQL Server.

Conclusione

Questa guida esplora come inserire i dati in blocco in una tabella di database SQL Server o visualizzare. Dai un'occhiata al nostro altro grande tutorial su SQL Server:

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

Happy SQL!!!