Utilizzo di file di dati e file di formato

Il programma per la copia bulk più semplice effettua le operazioni seguenti:

  1. Chiama bcp_init per specificare la copia bulk (impostare BCP_OUT) da una tabella o una vista a un file di dati.

  2. Chiama bcp_exec per eseguire l'operazione di copia bulk.

Poiché il file di dati viene creato in modalità nativa, i dati di tutte le colonne nella tabella o nella vista vengono archiviati nel file di dati con lo stesso formato utilizzato nel database. Il file può essere quindi oggetto di copia bulk in un server utilizzando questi stessi passaggi e impostando DB_IN anziché DB_OUT. È possibile procedere in questo modo solo se le tabelle di origine e di destinazione hanno una struttura identica. Il file di dati risultante può essere immesso anche nell'utilità bcp utilizzando l'opzione /n (modalità nativa).

Per eseguire la copia bulk dal set di risultati di un'istruzione Transact-SQL anziché direttamente da una tabella o una vista:

  1. Chiamare bcp_init per specificare la copia bulk, ma specificare NULL per il nome di tabella.

  2. Chiamare bcp_control con eOption impostato su BCPHINTS e iValue impostato su un puntatore a una stringa SQLTCHAR contenente l'istruzione Transact-SQL.

  3. Chiamare bcp_exec per eseguire l'operazione di copia bulk.

L'istruzione Transact-SQL può essere qualsiasi istruzione che genera un set di risultati. Il file di dati creato contiene il primo set di risultati dell'istruzione Transact-SQL. Nella copia bulk viene ignorato qualsiasi set di risultati successivo al primo se tramite l'istruzione Transact-SQL vengono generati più set di risultati.

Per creare un file di dati in cui i dati vengono archiviati in un formato diverso rispetto a quello utilizzato nella tabella, chiamare bcp_columns per specificare quante colonne verranno modificate, quindi chiamare bcp_colfmt per ogni colonna di cui si desidera modificare il formato. Tale operazione viene effettuata dopo la chiamata di bcp_init ma prima della chiamata di bcp_exec. bcp_colfmt consente di specificare il formato in cui vengono archiviati i dati della colonna nel file di dati e può essere utilizzato quando esegue una copia bulk interna o esterna. È inoltre possibile utilizzare bcp_colfmt per impostare i caratteri di terminazione di riga e di colonna. Se, ad esempio, i dati non contengono caratteri di tabulazione, è possibile creare un file delimitato da tabulazioni utilizzando bcp_colfmt per impostare il carattere di tabulazione come carattere di terminazione per ogni colonna.

Quando si esegue una copia bulk e si utilizza bcp_colfmt, è possibile creare in modo semplice un file di formato che descriva il file di dati creato chiamando bcp_writefmt dopo l'ultima chiamata a bcp_colfmt.

Quando si esegue una copia bulk da un file di dati descritto da un file di formato, leggere il file di formato chiamando bcp_readfmt dopo bcp_init, ma prima di bcp_exec.

La funzione bcp_control consente di controllare diverse opzioni quando si esegue una copia bulk in SQL Server da un file di dati. bcp_control consente l'impostazione delle opzioni, ad esempio il numero massimo di errori prima della chiusura, la riga nel file in corrispondenza della quale avviare la copia bulk, la riga in corrispondenza della quale arrestare la copia bulk e le dimensioni batch.

Vedere anche

Concetti

Esecuzione di operazioni di copia bulk (ODBC)