Preparazione dei dati per l'importazione o l'esportazione di massa

Data aggiornamento: 15 settembre 2007

In questa sezione vengono illustrati i fattori da considerare nella pianificazione di operazioni di esportazione di massa, nonché i requisiti per le operazioni di importazione di massa.

[!NOTA] In caso di dubbio riguardo alla formattazione da applicare a un file di dati per l'importazione di massa, è possibile utilizzare l'utilità bcp per esportare i dati dalla tabella in un file di dati. La formattazione applicata a ogni campo dati di questo file indica la formattazione necessaria per l'importazione di massa dei dati nella colonna della tabella corrispondente. Utilizzare la stessa formattazione per i campi del file di dati da importare.

Considerazioni sul formato dei file di dati per l'esportazione di massa

Prima di eseguire un'operazione di esportazione di massa utilizzando il comando bcp, tenere presente quanto segue:

  • Quando si esportano dati in un file, il comando bcp crea automaticamente il file di dati utilizzando il nome di file specificato. Se tale nome è già utilizzato, il contenuto esistente del file di dati verrà sovrascritto con i dati di cui si intende eseguire la copia di massa.
  • Per eseguire l'esportazione di massa da una tabella o da una vista in un file di dati, è necessario disporre dell'autorizzazione SELECT per la tabella o la vista da copiare.
  • Microsoft SQL Server può utilizzare scansioni parallele per eseguire il recupero dei dati. Pertanto in generale non c'è nessuna garanzia che le righe della tabella di cui si esegue l'esportazione di massa da un'istanza di SQL Server siano riportate in un determinato ordine nel file di dati. Per essere certi che le righe della tabella siano disposte in un ordine specifico nel file di dati, utilizzare l'opzione queryout per eseguire l'esportazione di massa da una query e specificare una clausola ORDER BY. Per ulteriori informazioni, vedere Esportazione di dati da una query a un file di dati.

Requisiti relativi al formato dei file di dati per l'importazione di massa

Per importare dati da un file di dati, il file deve soddisfare i requisiti di base seguenti:

  • È necessario che i dati siano disposti in righe e colonne.

[!NOTA] Non è necessario che la struttura del file di dati corrisponda esattamente alla struttura della tabella SQL Server, in quanto è possibile ignorare o riordinare le colonne durante il processo di importazione di massa.

  • È necessario che il file di dati sia in un formato supportato, ad esempio carattere o nativo.

  • Per i dati è possibile utilizzare il formato carattere o binario nativo, incluso Unicode.

  • Per importare dati utilizzando un comando bcp, un'istruzione BULK INSERT o un'istruzione INSERT ... SELECT * FROM OPENROWSET(BULK...), è necessario che la tabella di destinazione sia già esistente.

  • È necessario che ogni campo del file di dati sia compatibile con la colonna corrispondente della tabella di destinazione. Non è ad esempio possibile caricare un campo int in una colonna datetime. Per ulteriori informazioni, vedere Utilizzo dei formati di dati nativo, carattere o Unicode e Impostazione dei formati di dati per la compatibilità mediante bcp.

    [!NOTA] Per specificare un subset di righe da importare da un file di dati anziché l'intero file, è possibile utilizzare un comando bcp con l'opzione -F first_row e/o l'opzione -L last_row. Per ulteriori informazioni, vedere Utilità bcp.

  • Per importare dati da file di dati con campi a lunghezza o a larghezza fissa, è necessario utilizzare un file di formato. Per ulteriori informazioni, vedere File di formato XML di esempio.

  • In alcuni casi, è possibile utilizzare un file con valori delimitati da virgole (CSV) come file di dati per un'importazione di massa di dati in SQL Server. Non è necessario che il carattere di terminazione del campo di un file CSV sia una virgola. Per essere utilizzabile come un file di dati per l'importazione di massa, un file CSV deve rispettare le restrizioni seguenti:

    • I campi dati non contengono mai il carattere di terminazione del campo.
    • Nessuno o tutti i valori di un campo dati sono racchiusi tra virgolette doppie ("").
      Per importare dati da un file di tabella Microsoft FoxPro o Visual FoxPro (.dbf) o da un foglio di lavoro (.xls) di Microsoft Excel, convertire i dati in un file .CSV la cui estensione di file è normalmente .csv. È quindi possibile utilizzare il file .csv in un'operazione di importazione di massa di SQL Server.

Per l'importazione di massa di dati da un file in una tabella è inoltre richiesto quanto segue:

  • Gli utenti devono disporre delle autorizzazioni INSERT e SELECT per la tabella, nonché dell'autorizzazione ALTER TABLE quando utilizzano opzioni che prevedono operazioni DDL (Data Definition Language), quali la disattivazione di vincoli.
  • Quando si esegue l'importazione di massa di dati tramite BULK INSERT o INSERT ... SELECT * FROM OPENROWSET(BULK...), il file di dati deve risultare accessibile per le operazioni di lettura eseguite dal profilo di protezione del processo SQL Server (se l'utente esegue l'accesso utilizzando l'account di accesso SQL Server disponibile) oppure dall'account di accesso di Microsoft Windows utilizzato con delega della protezione. Per leggere il file, l'utente deve inoltre disporre dell'autorizzazione ADMINISTER BULK OPERATIONS.

[!NOTA] L'importazione di massa in una vista partizionata non è supportata e avrà pertanto esito negativo.

Vedere anche

Concetti

Importazione ed esportazione di dati in base al formato carattere
Utilizzo del formato nativo per l'importazione o l'esportazione di dati
Informazioni sui file di formato XML

Altre risorse

Utilità bcp
BULK INSERT (Transact-SQL)
Tipi di dati (Transact-SQL)
ExportData Method
ImportData Method

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

15 settembre 2007

Contenuto modificato:
  • È stata espansa la discussione relativa alla preparazione di un file CSV per l'importazione di massa.

17 luglio 2006

Nuovo contenuto:
  • Aggiunta di una nota nell'introduzione.
  • Aggiunta di un requisito relativo all'importazione dei campi a lunghezza o a larghezza fissa.

14 aprile 2006

Nuovo contenuto:
  • Sono state aggiunte informazioni sul formato del file di dati per l'importazione di dati esterni in SQL Server.