Impostazione dei formati di dati per la compatibilità mediante bcp
Quando si esegue l'esportazione bulk di dati di Microsoft SQL Server per l'importazione bulk in un altro programma, ad esempio un altro programma di database, è possibile che i formati di dati predefiniti (nativo, carattere o Unicode) nella tabella di origine non risultino compatibili con il layout dei dati previsto negli altri programmi. Se esiste un'incompatibilità, quando si esegue l'esportazione è necessario descrivere il layout dei dati.
Nota
Se non si ha familiarità con i formati per l'importazione o l'esportazione di dati, vedere Formati di dati per l'importazione o l'esportazione.
Il comando bcp consente di specificare la struttura di tutti i campi di un file di dati mediante i seguenti attributi di formato dati:
Tipo di archiviazione di file
Il tipo di archiviazione di file indica la modalità con la quale vengono archiviati i dati in un file. I dati possono essere esportati in un file utilizzando il tipo di dati della tabella del database in cui si trovano (formato nativo), come caratteri (formato carattere) o utilizzando qualsiasi tipo di dati nel caso in cui sia supportata la conversione implicita. È possibile ad esempio copiare il tipo smallint come int. I tipi di dati definiti dall'utente vengono esportati utilizzando il tipo di dati di base corrispondente. Per ulteriori informazioni, vedere Specifica del tipo di archiviazione di file tramite bcp.
Lunghezza del prefisso
Per implementare il tipo di archiviazione più compatto durante l'esportazione bulk dei dati in formato nativo in un file di dati, il comando bcp antepone a ogni campo uno o più caratteri che ne indicano la lunghezza. Tali caratteri sono denominati caratteri per il prefisso di lunghezza. Per ulteriori informazioni, vedere Impostazione della lunghezza del prefisso in file di dati.
Lunghezza del campo
La lunghezza del campo indica il numero massimo di caratteri necessari per rappresentare i dati in formato carattere. Se i dati sono archiviati in formato nativo, la lunghezza del campo è già nota. Per ulteriori informazioni, vedere Definizione della lunghezza di campo tramite bcp.
Carattere di terminazione del campo
Nei campi dati di tipo carattere, i caratteri di terminazione facoltativi consentono di indicare la fine di ogni campo nel file di dati (utilizzando un carattere di terminazione del campo) e di ogni riga (utilizzando un carattere di terminazione della riga). I caratteri di terminazione indicano ai programmi che leggono il file il punto in cui termina il campo o la riga e inizia il campo o la riga successiva. Per ulteriori informazioni, vedere Impostazione dei caratteri di terminazione del campo e della riga.
Panoramica dei prompt specifici dei campi
Se un comando bcp interattivo contiene l'opzione in o out, ma non contiene l'opzione del file di formato (-f) o un'opzione di formato dati (-n, -c, -w o -N), per ciascuna colonna nella tabella di origine o di destinazione, il comando richiede uno alla volta tutti gli attributi precedenti. In ogni prompt, il comando bcp offre un valore predefinito in base al tipo di dati di SQL Server della colonna di tabella. Accettare il valore predefinito per tutti i prompt equivale a specificare il formato nativo (-n) nella riga di comando. Ogni prompt mostra un valore predefinito fra parentesi: [default]. Per accettare i valori predefiniti, premere INVIO. Per specificare un valore diverso da quello predefinito, immettere il valore desiderato al prompt.
Esempio
Nell'esempio seguente il comando bcp viene utilizzato per l'esportazione bulk interattiva dei dati dalla tabella HumanResources.myTeam al file myTeam.txt. Prima di eseguire l'esempio è necessario creare questa tabella. Per informazioni su come creare la tabella, vedere Creazione della tabella HumanResources.myTeam.
Il comando non specifica un file di formato né un tipo di dati. Ciò provoca la richiesta di informazioni di formato dati da parte di bcp. Al prompt dei comandi di Microsoft Windows digitare:
bcp AdventureWorks2008R2.HumanResources.myTeam out myTeam.txt -T
Per ogni colonna, bcp richiede valori specifici del campo. Nell'esempio seguente vengono illustrati i prompt specifici di campo per le colonne EmployeeID e Name della tabella e viene suggerito il tipo di archiviazione file predefinito (il formato nativo) per ogni colonna. Le lunghezze del prefisso delle colonne EmployeeID e Name sono rispettivamente 0 e 2. L'utente specifica una virgola (,) come carattere di terminazione di ogni campo.
Enter the file storage type of field EmployeeID [smallint]:
Enter prefix-length of field EmployeeID [0]:
Enter field terminator [none]:,
Enter the file storage type of field Name [nvarchar]:
Enter prefix length of field Name [2]:
Enter field terminator [none]:,
.
.
.
Per ogni colonna della tabella, in ordine e se necessario, vengono visualizzati prompt equivalenti.
Archiviazione di dati campo per campo in un file di formato non XML
Una volta specificate tutte le colonne della tabella, il comando bcp chiede se si desidera generare un file di formato non XML per l'archiviazione delle informazioni campo per campo appena inserite (vedere l'esempio precedente). Se si sceglie di generare un file di formato, è possibile utilizzarlo ogni volta che si esportano dati da quella tabella o si importano dati di struttura simile in SQL Server.
Nota
Il file di formato può essere utilizzato per eseguire l'importazione bulk dal file di dati a un'istanza di SQL Server o per eseguire l'esportazione bulk di dati dalla tabella senza dover nuovamente specificare il formato. Per ulteriori informazioni, vedere File di formato per l'importazione o l'esportazione di dati.
Nell'esempio seguente viene creato un file di formato non XML denominato myFormatFile.fmt:
Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]myFormatFile.fmt
Il nome predefinito per il file di formato è bcp.fmt, ma è possibile specificare un nome diverso.
Nota
Per un file di dati che utilizza un unico formato dati per il tipo di archiviazione, ad esempio il formato carattere o nativo, è possibile creare rapidamente un file di formato senza esportare o importare dati utilizzando l'opzione format. Questo approccio ha il vantaggio della semplicità e consente di creare un file di formato XML o non XML. Per ulteriori informazioni, vedere Creazione di un file di formato.
Contenuto della sezione
In questa sezione vengono trattati gli argomenti seguenti.
Argomento |
Attributo di formato dati |
---|---|
Contiene informazioni su come specificare il tipo di archiviazione di file in un comando bcp. |
|
Contiene informazioni su come specificare la lunghezza del prefisso in un comando bcp. |
|
Contiene informazioni su come specificare la lunghezza del campo in un comando bcp. |
|
Impostazione dei caratteri di terminazione del campo e della riga |
Contiene informazioni su come specificare i caratteri di terminazione del campo e della riga in un comando bcp. |
Contiene informazioni sull'archiviazione dei dati in formato carattere in un file di dati esportato. |
Vedere anche