Creazione di un file di formato (SQL Server)Create a Format File (SQL Server)

Quando si esegue l'importazione bulk in una tabella di SQL ServerSQL Server dei dati da una tabella, è possibile utilizzare un file di formato per un sistema flessibile per la scrittura di file di dati che non richiede alcuna modifica o richiede modifiche minime per la conformità con altri formati di dati o la lettura di file di dati da un altro programma software.When you bulk import into a SQL ServerSQL Server table or bulk export data from a table, you can use a format file to a flexible system for writing data files that requires little or no editing to comply with other data formats or to read data files from other software programs.

SQL ServerSQL Server supporta due tipi di file di formato, ovvero non XML e XML. support two types of format file: non-XML format and XML format. Il formato non XML è il formato originale supportato dalle versioni precedenti di SQL ServerSQL Server.The non-XML format is the original format that is supported by earlier versions of SQL ServerSQL Server.

In generale, i file di formato XML e non XML sono intercambiabili.Generally, XML and non-XML format files are interchangeable. È 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.However, we recommend that you use the XML syntax for new format files because they provide several advantages over non-XML format files.

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.The version of the bcp utility (Bcp.exe) used to read a format file must be the same as, or later than the version used to create the format file. Ad esempio, l'utilità SQL Server 2012SQL Server 2012bcp può leggere un file di formato versione 10.0 generato dall'utilità SQL Server 2008SQL Server 2008bcp; tuttavia l'utilità SQL Server 2008SQL Server 2008bcp non riesce a leggere un file di formato versione 11.0 generato dall'utilità SQL Server 2012SQL Server 2012bcp.For example, SQL Server 2012SQL Server 2012bcp can read a version 10.0 format file, which is generated by SQL Server 2008SQL Server 2008bcp, but SQL Server 2008SQL Server 2008bcp cannot read a version 11.0 format file, which is generated by SQL Server 2012SQL Server 2012bcp.

Questo argomento descrive come usare l' utilità bcp per creare un file di formato per una tabella specifica.This topic describes how to use the bcp utility to create a format file for a particular table. 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.The format file is based on the data-type option specified (-n, -c, -w,or -N) and the table or view delimiters.

Creazione di un file di formato non XMLCreating a Non-XML Format File

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.To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. L'opzione format richiede anche l'opzione -f , come nell'esempio seguente:The format option also requires the -f option, such as:

bcp table_or_view format nul -fformat_file_namebcp table_or_view format nul -fformat_file_name

Nota

Per distinguere un file di formato non XML, è consigliabile utilizzare l'estensione fmt, ad esempio MyTable.fmt.To distinguish a non-XML format file, we recommend that you use .fmt as the file name extension, for example, MyTable.fmt.

Per informazioni sulla struttura e sui campi dei file di formato non XML, vedere File in formato non XML (SQL Server).For information about the structure and fields of non-XML format files, see Non-XML Format Files (SQL Server).

EsempiExamples

Questa sezione contiene gli esempi seguenti che illustrano come usare i comandi bcp per creare un file di formato non XML:This section contains the following examples that show how to use bcp commands to create a non-XML format file:

  • A.A. Creazione di un file di formato non XML per dati nativiCreating a non-XML format file for native data

  • B.B. Creazione di un file di formato non XML per dati di tipo carattereCreating a non-XML format file for character data

  • C.C. Creazione di un file di formato non XML per dati nativi UnicodeCreating a non-XML format file for Unicode native data

  • D.D. Creazione di un file di formato non XML per dati di tipo carattere UnicodeCreating a non-XML format file for Unicode character data

  • F.F. Uso di un file di formato con l'opzione della tabella codiciUsing a format file with the code page option

    Negli esempi viene utilizzata la tabella HumanResources.Department del database di esempio AdventureWorks2012AdventureWorks2012 .The examples use the HumanResources.Department table in the AdventureWorks2012AdventureWorks2012 sample database. La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupNamee ModifiedDate.The HumanResources.Department table contains four columns: DepartmentID, Name, GroupName, and ModifiedDate.

A.A. Creazione di un file di formato non XML per dati nativiCreating a non-XML format file for native data

Nell'esempio seguente viene creato un file di formato XML, Department-n.xml, per la tabella AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department-n.xml, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. Nel file di formato vengono utilizzati tipi di dati nativi.The format file uses native data types. Il contenuto del file di formato generato viene visualizzato dopo il comando.The contents of the generated format file are presented after the command.

Per il comando bcp sono disponibili i qualificatori seguenti.The bcp command contains the following qualifiers.

QualificatoriQualifiers DescrizioneDescription
formatnul-f format_fileformatnul-f format_file Specifica il file di formato non XML.Specifies the non-XML format file.
-n Specifica i tipi di dati nativi.Specifies native data types.
-T-T Specifica che l'utilità bcp si connette a SQL ServerSQL Server tramite una connessione trusted che usa la sicurezza integrata.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Se non si specifica -T , è necessario specificare -U e -P per eseguire correttamente l'accesso.If -T is not specified, you must specify -U and -P to successfully log in.

Al prompt dei comandi di Windows digitare il comando bcp seguente:At the Windows command prompt, enter the following bcp command:

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

Il file di formato generato, Department-n.fmt, contiene le informazioni seguenti:The generated format file, Department-n.fmt, contains the following information:

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).For more information, see Non-XML Format Files (SQL Server).

B.B. Creazione di un file di formato non XML per dati di tipo carattereCreating a non-XML format file for character data

Nell'esempio seguente viene creato un file di formato XML, Department.fmt, per la tabella AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department.fmt, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. Nel file di formato vengono utilizzati formati di dati di tipo carattere e un carattere di terminazione del campo non predefinito (,).The format file uses character data formats and a non-default field terminator (,). Il contenuto del file di formato generato viene visualizzato dopo il comando.The contents of the generated format file are presented after the command.

Per il comando bcp sono disponibili i qualificatori seguenti.The bcp command contains the following qualifiers.

QualificatoriQualifiers DescrizioneDescription
formatnul-f format_fileformatnul-f format_file Specifica un file di formato non XML.Specifies a non-XML format file.
-c-c Specifica i dati di tipo carattere.Specifies character data.
-T-T Specifica che l'utilità bcp si connette a SQL ServerSQL Server tramite una connessione trusted che usa la sicurezza integrata.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Se non si specifica -T , è necessario specificare -U e -P per eseguire correttamente l'accesso.If -T is not specified, you must specify -U and -P to successfully log in.

Al prompt dei comandi di Windows digitare il comando bcp seguente:At the Windows command prompt, enter the following bcp command:

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

Il file di formato generato, Department-c.fmt, contiene le informazioni seguenti:The generated format file, Department-c.fmt, contains the following information:

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).For more information, see Non-XML Format Files (SQL Server).

C.C. Creazione di un file di formato non XML per dati nativi UnicodeCreating a non-XML format file for Unicode native data

Per creare un file di formato non XML per i dati nativi Unicode della tabella HumanResources.Department, utilizzare il comando seguente:To create a non-XML format file for Unicode native data for the HumanResources.Department table, use the following command:

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).For more information about how to use Unicode native data, see Use Unicode Native Format to Import or Export Data (SQL Server).

D.D. Creazione di un file di formato non XML per dati di tipo carattere UnicodeCreating a non-XML format file For Unicode character data

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:To create a non-XML format file for Unicode character data for the HumanResources.Department table that uses default terminators, use the following command:

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).For more information about how to use Unicode character data, see Use Unicode Character Format to Import or Export Data (SQL Server).

F.F. Uso di un file di formato con l'opzione della tabella codiciUsing a format file with the code page option

Se si crea un file di formato con il comando bcp, ad esempioIf you create a format file using the bcp command (i.e. usando "bcp format..."using “bcp format …” , le informazioni su regole di confronto/tabella codici verranno scritte nel file di formato.) information about the collation/code page will be written in the format file.
Il seguente file di formato di esempio per una tabella con 5 colonne include le regole di confronto.The following example format file for a table with 5 columns includes the collation.

13.0  
5  
1  SQLCHAR         0       0       "**\t**"         1     c_0          Cyrillic_General_CS_AS  
2  SQLCHAR         0       0       "**\t**"         2     c_1          Cyrillic_General_CS_AS  
3  SQLCHAR         0       3000    "**\t**"         3     c_2          Cyrillic_General_CS_AS  
4  SQLCHAR         0       5       "**\t**"         4     c_3          ""  
5  SQLCHAR         0       41      "!!!\r\r\n"      5     c_4          ""  

Se si prova a importare i dati in SQL ServerSQL Server usando bcp in –c –C65001 –f format_file ..."If you try to import data into SQL ServerSQL Server using bcp in –c –C65001 –f format_file …” oppure "BULK INSERT/OPENROWSETor “BULK INSERT/OPENROWSET FORMATFILE='format_file' CODEPAGE=65001 ...", le informazioni su regole di confronto/tabella codici avranno la priorità rispetto all'opzione 65001.FORMATFILE='format_file' CODEPAGE=65001 …”, information about the collation/code page will have priority over 65001 option.
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 ServerSQL Server.Therefore, if you generate a format file, you must manually delete the collation info from the generated format file before you start importing data back into SQL ServerSQL Server.
Ecco un esempio di file di formato senza le informazioni sulle regole di confronto.The following is an example of the format file without the collation info.

13.0  
5  
1  SQLCHAR         0       0       "**\t**"         1     c_0              ""  
2  SQLCHAR         0       0       "**\t**"         2     c_1              ""  
3  SQLCHAR         0       3000    "**\t**"         3     c_2              ""  
4  SQLCHAR         0       5       "**\t**"         4     c_3              ""  
5  SQLCHAR         0       41      "!!!\r\r\n"      5     c_4              ""  

Creazione di un file di formato XMLCreating an XML Format File

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.To use a bcp command to create a format file, specify the format argument and use nul instead of a data-file path. 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:The format option always requires the -f option, and to create an XML format file, you must also specify the -x option, such as:

bcp table_or_view format nul-f format_file_name -xbcp table_or_view format nul-f format_file_name -x

Nota

Per distinguere un file di formato XML, è consigliabile utilizzare l'estensione xml, ad esempio MyTable.xml.To distinguish an XML format file, we recommend that you use .xml as the file name extension, for example, MyTable.xml.

Per informazioni sulla struttura e sui campi dei file di formato XML, vedere File in formato XML (SQL Server).For information about the structure and fields of XML format files, see XML Format Files (SQL Server).

EsempiExamples

Questa sezione contiene gli esempi seguenti che illustrano come usare i comandi bcp per creare un file di formato XML:This section contains the following examples that show how to use bcp commands to create an XML format file:

  • A.A. Creazione di un file di formato XML per dati di tipo carattereCreating an XML format file for character data

  • B.B. Creazione di un file di formato XML per dati nativiCreating an XML format file for native data

    Negli esempi viene utilizzata la tabella HumanResources.Department del database di esempio AdventureWorks2012AdventureWorks2012 .The examples use the HumanResources.Department table in the AdventureWorks2012AdventureWorks2012 sample database. La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupNamee ModifiedDate.The HumanResources.Department table contains four columns: DepartmentID, Name, GroupName, and ModifiedDate.

Nota

Adventure Works Cycles è un'azienda manifatturiera fittizia usata per esemplificare concetti e scenari relativi ai database.Adventure Works Cycles is a fictional manufacturing company used to demonstrate database concepts and scenarios.

A.A. Creazione di un file di formato XML per dati di tipo carattereCreating an XML format file for character data

Nell'esempio seguente viene creato un file di formato XML, Department.xml, per la tabella AdventureWorks2012AdventureWorks2012HumanResources.Department .The following example creates an XML format file, Department.xml, for the AdventureWorks2012AdventureWorks2012HumanResources.Department table. Nel file di formato vengono utilizzati formati di dati di tipo carattere e un carattere di terminazione del campo non predefinito (,).The format file uses character data formats and a non-default field terminator (,). Il contenuto del file di formato generato viene visualizzato dopo il comando.The contents of the generated format file are presented after the command.

Per il comando bcp sono disponibili i qualificatori seguenti.The bcp command contains the following qualifiers.

QualificatoriQualifiers DescrizioneDescription
formatnul-f format_file -xformatnul-f format_file -x Specifica il file di formato XML.Specifies the XML format file.
-c-c Specifica i dati di tipo carattere.Specifies character data.
-t ,-t , Specifica la virgola (,) come carattere di terminazione del campo.Specifies a comma (,) as the field terminator.

Nota: se il file di dati usa il carattere di terminazione del campo predefinito (\t), l'opzione -t non è necessaria.Note: If the data file uses the default field terminator (\t), the -t switch is unnecessary.
-T-T Specifica che l'utilità bcp si connette a SQL ServerSQL Server tramite una connessione trusted che usa la sicurezza integrata.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Se non si specifica -T , è necessario specificare -U e -P per eseguire correttamente l'accesso.If -T is not specified, you must specify -U and -P to successfully log in.

Al prompt dei comandi di Windows digitare il comando bcp seguente:At the Windows command prompt, enter the following bcp command:

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:The generated format file, Department-c.xml, contains the following XML elements:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="http://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).For information about the syntax of this format file, see XML Format Files (SQL Server). Per informazioni sui dati di tipo carattere, vedere Utilizzo del formato carattere per l'importazione o l'esportazione di dati (SQL Server).For information about character data, see Use Character Format to Import or Export Data (SQL Server).

B.B. Creazione di un file di formato XML per dati nativiCreating an XML format file for native data

Nell'esempio seguente viene creato un file di formato XML, Department-n.xml, per la tabella HumanResources.Department .The following example creates an XML format file, Department-n.xml, for the HumanResources.Department table. Nel file di formato vengono utilizzati tipi di dati nativi.The format file uses native data types. Il contenuto del file di formato generato viene visualizzato dopo il comando.The contents of the generated format file are presented after the command.

Per il comando bcp sono disponibili i qualificatori seguenti.The bcp command contains the following qualifiers.

QualificatoriQualifiers DescrizioneDescription
formatnul-f format_file -xformatnul-f format_file -x Specifica il file di formato XML.Specifies the XML format file.
-n Specifica i tipi di dati nativi.Specifies native data types.
-T-T Specifica che l'utilità bcp si connette a SQL ServerSQL Server tramite una connessione trusted che usa la sicurezza integrata.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. Se non si specifica -T , è necessario specificare -U e -P per eseguire correttamente l'accesso.If -T is not specified, you must specify -U and -P to successfully log in.

Al prompt dei comandi di Windows digitare il comando bcp seguente:At the Windows command prompt, enter the following bcp command:

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:The generated format file, Department-n.xml, contains the following XML elements:

<?xml version="1.0"?>  
<BCPFORMAT xmlns="http://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).For information about the syntax of this format file, see XML Format Files (SQL Server). Per informazioni su come usare i dati nativi, vedere Utilizzo del formato nativo per importare o esportare dati (SQL Server).For information about how to use native data, see Use Native Format to Import or Export Data (SQL Server).

Mapping tra campi dati e colonne della tabellaMapping Data Fields to Table Columns

Un file di formato creato da bcpdescrive tutte le colonne della tabella in ordine.As created by bcp, a format file describes all the table columns in order. È possibile modificare un file di formato per spostare o omettere righe della tabella.You can modify a format file to rearrange or omit table rows. 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.This lets you customize a format file to a data file whose fields do not map directly to the table columns. Per altre informazioni, vedere gli argomenti seguenti:For more information, see the following topics:

Vedere ancheSee Also

bcp Utility bcp Utility
Usare un file di formato per eseguire il mapping tra le colonne della tabella e i campi del file di dati (SQL Server) Use a Format File to Map Table Columns to Data-File Fields (SQL Server)
Utilizzo di un file di formato per ignorare una colonna di una tabella (SQL Server) Use a Format File to Skip a Table Column (SQL Server)
Utilizzo di un file di formato per escludere un campo di dati (SQL Server) Use a Format File to Skip a Data Field (SQL Server)
File in formato non XML (SQL Server) Non-XML Format Files (SQL Server)
File in formato XML (SQL Server)XML Format Files (SQL Server)