Condividi tramite


Creazione di un file di formato (SQL Server)

Quando si esegue un'importazione bulk in una tabella di SQL Server o un'esportazione bulk dei dati da una tabella, è possibile usare un file di formato per un sistema flessibile per la scrittura di file di dati che richiede modifiche nulle o minime per la conformità ad altri formati di dati o la lettura di file di dati da un altro programma software.

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 nuovi file di formato, in quanto questo tipo di file offre numerosi vantaggi rispetto ai file di formato non XML.

Nota

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, SQL Server 2012 bcp può leggere un file di formato versione 10.0, generato da SQL Server 2008bcp, ma SQL Server 2008 bcp non può leggere un file di formato versione 11.0, generato da SQL Server 2012bcp.

Questo argomento descrive come usare l' utilità bcp per creare un file di formato per una tabella specifica. Il file di formato è basato sull'opzione relativa al tipo di dati specificata ( -n, -c, -wo -N) e sui delimitatori della tabella o della vista.

Creazione di 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:

bcptabella_o_vistaformat nul -fnome_file_formato

Nota

Per distinguere un file di formato non XML, è consigliabile utilizzare l'estensione fmt, ad esempio MyTable.fmt.

Per informazioni sulla struttura e sui campi dei file di formato non XML, vedere File in formato non XML (SQL Server).

Esempi

Questa sezione contiene gli esempi seguenti che illustrano come usare i comandi bcp per creare un file di formato non XML:

  • R. Creazione di un file di formato non XML per dati nativi

  • B. Creazione di un file di formato non XML per dati di tipo carattere

  • C. Creazione di un file di formato non XML per dati nativi Unicode

  • D. Creazione di un file di formato non XML per dati di tipo carattere Unicode

Per gli esempi si usa la tabella HumanResources.Department del database di esempio AdventureWorks2012. La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupNamee ModifiedDate.

R. Creazione di un file di formato non XML per dati nativi

Nell'esempio seguente viene creato un file di formato XML, , Department-n.xmlper la tabella AdventureWorks2012HumanResources.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
formatnul-ffile_formato 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 , è necessario specificare -U e -P per eseguire correttamente l'accesso.

Al prompt dei comandi di Windows digitare il comando bcp seguente:

bcp AdventureWorks2012.HumanResources.Department format nul -T -n -f Department-n.fmt  

Il file di formato generato, Department-n.fmt, contiene le informazioni seguenti:

12.0  
4  
1       SQLSMALLINT   0       2       ""   1     DepartmentID                 ""  
2       SQLNCHAR      2       100     ""   2     Name                         SQL_Latin1_General_CP1_CI_AS  
3       SQLNCHAR      2       100     ""   3     GroupName                    SQL_Latin1_General_CP1_CI_AS  
4       SQLDATETIME   0       8       ""   4     ModifiedDate                 ""  

Per altre informazioni, vedere File in formato non XML (SQL Server).

B. Creazione di un file di formato non XML per dati di tipo carattere

Nell'esempio seguente viene creato un file di formato XML, , Department.fmtper la tabella AdventureWorks2012HumanResources.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
formatnul-ffile_formato 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 , è necessario specificare -U e -P per eseguire correttamente l'accesso.

Al prompt dei comandi di Windows digitare il comando bcp seguente:

bcp AdventureWorks2012.HumanResources.Department format nul -c -f Department-c.fmt -T  

Il file di formato generato, Department-c.fmt, contiene le informazioni seguenti:

12.0  
4  
1       SQLCHAR       0       7       "\t"     1     DepartmentID                 ""  
2       SQLCHAR       0       100     "\t"     2     Name                         SQL_Latin1_General_CP1_CI_AS  
3       SQLCHAR       0       100     "\t"     3     GroupName                    SQL_Latin1_General_CP1_CI_AS  
4       SQLCHAR       0       24      "\r\n"   4     ModifiedDate                 ""  

Per altre informazioni, vedere File in formato non XML (SQL Server).

C. Creazione di un file di formato non XML per dati nativi Unicode

Per creare un file di formato non XML per i dati nativi Unicode della tabella HumanResources.Department, utilizzare il comando seguente:

bcp AdventureWorks2012.HumanResources.Department format nul -T -N -f Department-n.fmt  

Per altre informazioni sull'uso dei dati di tipo carattere Unicode, vedere Utilizzare il formato Unicode nativo per importare o esportare dati (SQL Server).

D. Creazione di 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 AdventureWorks2012.HumanResources.Department format nul -T -w -f Department-w.fmt  

Per altre informazioni sull'uso dei dati di tipo carattere Unicode, vedere Utilizzo del formato carattere per l'importazione o l'esportazione di dati (SQL Server).

Creazione di 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 e per creare un file di formato XML è necessario anche specificare l'opzione -x , come nell'esempio seguente:

bcptabella_o_vistaformat nul-fnome_file_formato-x

Nota

Per distinguere un file di formato XML, è consigliabile utilizzare l'estensione xml, ad esempio MyTable.xml.

Per informazioni sulla struttura e sui campi dei file di formato XML, vedere File in formato XML (SQL Server).

Esempi

Questa sezione contiene gli esempi seguenti che illustrano come usare i comandi bcp per creare un file di formato XML:

  • R. Creazione di un file di formato XML per dati di tipo carattere

  • B. Creazione di un file di formato XML per dati nativi

Per gli esempi si usa la tabella HumanResources.Department del database di esempio AdventureWorks2012. La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupNamee ModifiedDate.

Nota

Adventure Works Cycles è un'azienda manifatturiera fittizia usata per esemplificare concetti e scenari relativi ai database.

R. Creazione di un file di formato XML per dati di tipo carattere

Nell'esempio seguente viene creato un file di formato XML, , Department.xmlper la tabella AdventureWorks2012HumanResources.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
formatnul-ffile_formato-x Specifica il file di formato XML.
-c Specifica i dati di tipo 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 , è necessario specificare -U e -P per eseguire correttamente l'accesso.

Al prompt dei comandi di Windows digitare il comando bcp seguente:

bcp AdventureWorks2012.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:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
 <RECORD>  
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>  
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>  
 </RECORD>  
 <ROW>  
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>  
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>  
 </ROW>  
</BCPFORMAT>  

Per informazioni sulla sintassi di questo file di formato, vedere File in formato XML (SQL Server). Per informazioni sui dati di tipo carattere, vedere Utilizzo del formato carattere per l'importazione o l'esportazione di dati (SQL Server).

B. Creazione di un file di formato 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
formatnul-ffile_formato-x 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 , è necessario specificare -U e -P per eseguire correttamente l'accesso.

Al prompt dei comandi di Windows digitare il comando bcp seguente:

bcp AdventureWorks2012.HumanResources.Department format nul -x -f Department-n..xml -n -T  

Il file di formato generato, Department-n.xml, contiene gli elementi XML seguenti:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
 <RECORD>  
  <FIELD ID="1" xsi:type="NativeFixed" LENGTH="2"/>  
  <FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>  
  <FIELD ID="4" xsi:type="NativeFixed" LENGTH="8"/>  
 </RECORD>  
 <ROW>  
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>  
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>  
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>  
 </ROW>  
</BCPFORMAT>  

Per informazioni sulla sintassi di questo file di formato, vedere File in formato XML (SQL Server). Per informazioni su come usare i dati nativi, vedere Utilizzo del formato nativo per importare o esportare dati (SQL Server).

Mapping tra campi dati e colonne della tabella

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. In questo modo, è 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 argomenti seguenti:

Vedere anche

Utilità bcp
Usare un file di formato per eseguire il mapping tra le colonne di tabella e i campi del file di dati (SQL Server)
Utilizzo di un file di formato per ignorare una colonna di una tabella (SQL Server)
Usare un file di formato per escludere un campo dati (SQL Server)
File in formato non XML (SQL Server)
File in formato XML (SQL Server)