Questo articolo illustra come usare l'utilità bcp per creare un file di formato per una tabella specifica. Il file di formato è basato sull'opzione specificata relativa al tipo di dati (-n, -c, -w, o -N) e sui delimitatori della tabella o della vista.
Quando si esegue l'importazione in blocco in una tabella di SQL Server o si esportano in blocco dati da una tabella, è possibile usare un file di formato come sistema flessibile per la scrittura di file di dati. I file di formato richiedono poche o nessuna modifica per la conformità con altri formati di dati o per leggere file di dati da altri programmi software.
Limiti
La versione dell'utilità bcp (bcp.exe) usata per leggere un file di formato deve essere uguale o successiva alla versione usata per creare il file di formato. Ad esempio, bcp di SQL Server 2016 (13.x) può leggere un file di formato versione 12.0 generato da bcp di SQL Server 2014 (12.x), ma bcp di SQL Server 2014 (12.x) non può leggere un file di formato versione 13.0 generato da bcp di SQL Server 2016 (13.x).
SQL Server supporta due tipi di file di formato, ovvero non XML e XML. Il formato non XML è il formato originale supportato dalle versioni precedenti di SQL Server.
In generale, i file di formato XML e non XML sono intercambiabili. È tuttavia consigliabile utilizzare la sintassi XML per i file di formato, in quanto questo tipo di file offre numerosi vantaggi rispetto ai file di formato non XML.
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2022 o AdventureWorksDW2022, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects. Adventure Works Cycles è un'azienda manifatturiera fittizia usata per esemplificare concetti e scenari relativi ai database.
Creare un file di formato XML
Per usare un comando bcp per creare un file di formato, specificare l'argomento format e usare nul anziché un percorso del file di dati. L'opzione format richiede sempre l'opzione -f. Inoltre, per creare un file di formato XML è necessario anche specificare l'opzione -x, ad esempio bcp <table_or_view> format nul -f <format_file_name> -x.
Per distinguere un file di formato XML, è consigliabile utilizzare .xml come estensione di file, ad esempio MyTable.xml.
Questa sezione contiene gli esempi seguenti che illustrano come usare i comandi bcp per creare un file di formato XML. La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupNamee ModifiedDate.
R. Creare un file di formato XML per dati di tipo carattere
Nell'esempio seguente viene creato un file di formato XML, Department.xml, per la tabella HumanResources.Department . Nel file di formato vengono utilizzati formati di dati di tipo carattere e un carattere di terminazione del campo non predefinito (,). Il contenuto del file di formato generato viene visualizzato dopo il comando.
Per il comando bcp sono disponibili i qualificatori seguenti.
Qualificatori
Descrizione
format nul -x -f <format_file>
Specifica il file di formato XML.
-c
Specifica dati di carattere.
-t,
Specifica la virgola (,) come carattere di terminazione del campo.
Nota: se il file di dati usa il carattere di terminazione del campo predefinito (\t), l'opzione -t non è necessaria.
-T
Specifica che l'utilità bcp si connette a SQL Server con una connessione trusted che usa la sicurezza integrata. Se non si specifica -T, bisogna specificare -U e -P per eseguire correttamente l'accesso.
Al prompt dei comandi di Windows digitare il comando bcp seguente:
bcp AdventureWorks2022.HumanResources.Department format nul -c -x -f Department-c.xml -t, -T
Il file di formato generato, Department-c.xml, contiene gli elementi XML seguenti:
Nell'esempio seguente viene creato un file di formato XML, Department-n.xml, per la tabella HumanResources.Department . Nel file di formato vengono utilizzati tipi di dati nativi. Il contenuto del file di formato generato viene visualizzato dopo il comando.
Per il comando bcp sono disponibili i qualificatori seguenti.
Qualificatori
Descrizione
format nul -x -f <format_file>
Specifica il file di formato XML.
-n
Specifica i tipi di dati nativi.
-T
Specifica che l'utilità bcp si connette a SQL Server con una connessione trusted che usa la sicurezza integrata. Se non si specifica -T, bisogna specificare -U e -P per eseguire correttamente l'accesso.
Al prompt dei comandi di Windows digitare il comando bcp seguente:
bcp AdventureWorks2022.HumanResources.Department format nul -x -f Department-n.xml -n -T
Il file di formato generato, Department-n.xml, contiene gli elementi XML seguenti:
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2022 o AdventureWorksDW2022, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects. Adventure Works Cycles è un'azienda manifatturiera fittizia usata per esemplificare concetti e scenari relativi ai database.
Creare un file di formato non XML
Per usare un comando bcp per creare un file di formato, specificare l'argomento format e usare nul anziché un percorso del file di dati. L'opzione format richiede anche l'opzione -f, come nell'esempio seguente: bcp <table_or_view> format nul -f <format_file_name>.
Per distinguere un file di formato non XML, è consigliabile utilizzare .fmt come estensione di file, ad esempio MyTable.fmt.
Questa sezione contiene gli esempi seguenti che illustrano come usare i comandi bcp per creare un file di formato non XML. La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupNamee ModifiedDate.
A. Creare un file di formato non XML per dati nativi
Nell'esempio seguente viene creato un file di formato XML, Department-n.xml, per la tabella HumanResources.Department . Nel file di formato vengono utilizzati tipi di dati nativi. Il contenuto del file di formato generato viene visualizzato dopo il comando.
Per il comando bcp sono disponibili i qualificatori seguenti.
Qualificatori
Descrizione
format nul -f <format_file>
Specifica il file di formato non XML.
-n
Specifica i tipi di dati nativi.
-T
Specifica che l'utilità bcp si connette a SQL Server con una connessione trusted che usa la sicurezza integrata. Se non si specifica -T, bisogna specificare -U e -P per eseguire correttamente l'accesso.
Al prompt dei comandi di Windows digitare il comando bcp seguente:
bcp AdventureWorks2022.HumanResources.Department format nul -T -n -f Department-n.fmt
Il file di formato generato, Department-n.fmt, contiene le informazioni seguenti:
B. Creare un file di formato non XML per dati di tipo carattere
Nell'esempio seguente viene creato un file di formato XML, Department.fmt, per la tabella HumanResources.Department . Nel file di formato vengono utilizzati formati di dati di tipo carattere e un carattere di terminazione del campo non predefinito (,). Il contenuto del file di formato generato viene visualizzato dopo il comando.
Per il comando bcp sono disponibili i qualificatori seguenti.
Qualificatori
Descrizione
format nul -f <format_file>
Specifica un file di formato non XML.
-c
Specifica i dati di tipo carattere.
-T
Specifica che l'utilità bcp si connette a SQL Server con una connessione trusted che usa la sicurezza integrata. Se non si specifica -T, bisogna specificare -U e -P per eseguire correttamente l'accesso.
Al prompt dei comandi di Windows digitare il comando bcp seguente:
bcp AdventureWorks2022.HumanResources.Department format nul -c -f Department-c.fmt -T
Il file di formato generato, Department-c.fmt, contiene le informazioni seguenti:
D. Creare un file di formato non XML per dati di tipo carattere Unicode
Per creare un file di formato non XML per i dati di tipo carattere Unicode della tabella HumanResources.Department che utilizza i caratteri di terminazione predefiniti, utilizzare il comando seguente:
bcp AdventureWorks2022.HumanResources.Department format nul -T -w -f Department-w.fmt
F. Usare un file di formato con l'opzione della pagina di codice
Se si crea un file di formato con il comando bcp (ovvero usando bcp format), le informazioni sulle regole di confronto o sulla tabella codici verranno scritte nel file di formato.
Il seguente file di formato di esempio per una tabella con 5 colonne include le regole di confronto.
Se si prova a importare i dati in SQL Server usando bcp in -c -C65001 -f format_file ..." o "BULK INSERT/OPENROWSET ... FORMATFILE='format_file' CODEPAGE=65001 ...", le informazioni sulle regole di confronto o sulla tabella codici avranno la priorità rispetto all'opzione 65001.
Di conseguenza, se si genera un file di formato, è necessario eliminare manualmente le informazioni sulle regole di confronto dal file di formato generato prima di iniziare a reimportare i dati in SQL Server.
Il seguente esempio mostra il formato del file senza le informazioni sulle regole di confronto.
Un file di formato creato da bcpdescrive tutte le colonne della tabella in ordine. È possibile modificare un file di formato per spostare o omettere righe della tabella. É possibile personalizzare un file di formato in base a un file di dati i cui campi non eseguono il mapping direttamente alle colonne della tabella. Per altre informazioni, vedere gli articoli seguenti:
Azure HPC è una funzionalità cloud appositamente realizzata per carichi di lavoro HPC e di intelligenza artificiale che si avvale di processori all'avanguardia e dell'interconnessione InfiniBand di classe HPC per offrire livelli ottimali di prestazioni, scalabilità e valore delle applicazioni. Azure HPC consente agli utenti di favorire l'innovazione, la produttività e l'agilità aziendale tramite una gamma a disponibilità elevata di tecnologie di intelligenza artificiale che possono essere allocate dinamicam