Condividi tramite


Creazione di un file di formato (SQL Server)

Quando si esegue l'importazione bulk in una tabella di SQL 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.

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) utilizzata per leggere un file di formato deve essere uguale o successiva alla versione utilizzata per creare il file di formato. L'utilità bcp di SQL Server 2008 è ad esempio in grado di leggere un file di formato versione 9.0 generato dall'utilità bcp di SQL Server 2005, ma l'utilità bcp di SQL Server 2005 non è in grado di leggere un file di formato versione 10.0 generato dall'utilità bcp di SQL Server 2008.

In questo argomento viene descritto come utilizzare 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, -w o -N) e sui delimitatori della tabella o della vista.

Creazione di un file di formato non XML

Per utilizzare un comando bcp per creare un file di formato, specificare l'argomento format e utilizzare nul anziché un percorso del file di dati. L'opzione format richiede inoltre l'opzione -f, come nell'esempio seguente:

bcp table_or_view format nul -f format_file_name

[!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

In questa sezione sono disponibili gli esempi seguenti che illustrano come utilizzare i comandi bcp per creare un file di formato non XML:

  • A. 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

Negli esempi viene utilizzata la tabella HumanResources.Department del database di esempio AdventureWorks2012 . La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupName e ModifiedDate.

[!NOTA]

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

A.Creazione di 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 del database AdventureWorks2012. 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 utilizzando la sicurezza integrata. Se non si specifica -T, per eseguire correttamente l'accesso è necessario specificare le opzioni -U e -P.

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:

9.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 ulteriori 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.fmt, per la tabella HumanResources.Department del database AdventureWorks2012. 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 utilizzando la sicurezza integrata. Se non si specifica -T, per eseguire correttamente l'accesso è necessario specificare le opzioni -U e -P.

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:

9.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 ulteriori 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 ulteriori informazioni sull'utilizzo dei dati nativi 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 ulteriori informazioni sull'utilizzo dei dati di tipo carattere Unicode, vedere Utilizzo del formato carattere Unicode per l'importazione o l'esportazione di dati (SQL Server).

Creazione di un file di formato XML

Per utilizzare un comando bcp per creare un file di formato, specificare l'argomento format e utilizzare nul anziché un percorso del file di dati. L'opzione format richiede sempre l'utilizzo dell'opzione -f. Per creare un file di formato XML, è inoltre necessario specificare l'opzione -x, come nell'esempio seguente:

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

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

Esempi

In questa sezione sono disponibili gli esempi seguenti, in cui viene illustrato come utilizzare i comandi bcp per creare un file di formato XML:

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

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

Negli esempi viene utilizzata la tabella HumanResources.Department del database di esempio AdventureWorks2012 . La tabella HumanResources.Department contiene quattro colonne, ovvero DepartmentID, Name, GroupName e ModifiedDate.

[!NOTA]

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

A.Creazione di 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 del database AdventureWorks2012. 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 -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 utilizza 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 utilizzando la sicurezza integrata. Se non si specifica -T, per eseguire correttamente l'accesso è necessario specificare le opzioni -U e -P.

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

format nul -f format_file -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 utilizzando la sicurezza integrata. Se non si specifica -T, per eseguire correttamente l'accesso è necessario specificare le opzioni -U e -P.

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 ulteriori informazioni sull'utilizzo dei 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 bcp descrive 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 ulteriori informazioni, vedere gli argomenti seguenti:

Vedere anche

Riferimento

Utilità bcp

Concetti

Utilizzo di un file di formato per eseguire il mapping tra le colonne della 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)

Utilizzo di un file di formato per escludere un campo di dati (SQL Server)

File in formato non XML (SQL Server)

File in formato XML (SQL Server)