Informazioni sui file di formato non XML

In MicrosoftSQL Server 2000 e versioni precedenti per l'esportazione e l'importazione bulk viene utilizzato un unico tipo di file di formato. Questo è supportato in MicrosoftSQL Server 2005 e versioni successive, che in alternativa supportano anche file di formato XML. I file di formato di tipo originale vengono chiamati file di formato non XML per distinguerli.

[!NOTA]

I file di formato XML offrono diversi vantaggi. Per ulteriori informazioni, vedere File di formato per l'importazione o l'esportazione di dati.

In genere, i file di formato vengono creati per un formato di dati specifico tramite il comando bcp in uno dei modi seguenti:

  • È possibile creare un tipo di file di formato, ad esempio per dati di tipo carattere o dati nativi, specificando l'opzione format nel comando bcp. Per ulteriori informazioni, vedere Creazione di un file di formato.

  • È possibile creare un file di formato non XML contenente attributi specificati in modo interattivo per ogni campo dati. Per ulteriori informazioni, vedere Impostazione dei formati di dati per la compatibilità mediante bcp.

    [!NOTA]

    Quando si specifica un file di formato esistente in un comando bcp, quest'ultimo utilizza i valori registrati nel file di formato e non richiede il tipo di archiviazione di file, la lunghezza del prefisso, la lunghezza del campo o il carattere di terminazione del campo.

Struttura dei file di formato non XML

Un file di formato non XML è un file di testo con una struttura specifica. Il file di formato non XML contiene informazioni sul tipo di archiviazione di file, sulla lunghezza del prefisso, sulla lunghezza del campo e sul carattere di terminazione del campo di ogni colonna della tabella.

Nella figura seguente vengono illustrati i campi del file di formato per un file di formato non XML di esempio.

Identifica i campi di un file in formato non XML

I campi Versione e Numero di colonne sono presenti una sola volta. I significati di questi campi sono descritti nella tabella seguente.

Campo del file di formato

Descrizione

Versione

Numero di versione dell'utilità bcp:

7.0 = SQL Server versione 7.0

8.0 = SQL Server 2000

9.0 = SQL Server 2005

10.0 = SQL Server 2008

Il numero di versione viene riconosciuto solo dall'utilità bcp, non da Transact-SQL.

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

Numero di colonne

Numero di campi del file di dati. Tutte le righe devono contenere lo stesso numero di campi.

Gli altri campi del file di formato descrivono i campi dati di cui viene eseguita l'importazione o l'esportazione bulk. Per ogni campo dati è necessaria una riga separata nel file di formato. Ogni riga del file di formato contiene i valori dei campi del file di formato descritti nella tabella seguente.

Campo del file di formato

Descrizione

Ordine dei campi nel file host

Numero che indica la posizione di ogni campo nel file di dati. Il primo campo della riga è 1 e così via.

Tipo di dati del file host

Indica il tipo di dati archiviati in un determinato campo del file di dati. Per i file di dati ASCII, utilizzare SQLCHAR. Per i file di dati in formato nativo, utilizzare i tipi di dati predefiniti. Per ulteriori informazioni, vedere Specifica del tipo di archiviazione di file tramite bcp.

Lunghezza del prefisso

Numero di caratteri della lunghezza del prefisso per il campo. Le lunghezze del prefisso valide sono 0, 1, 2, 4 e 8. Per evitare di specificare il prefisso di lunghezza, impostare il campo su 0. Se il campo contiene valori di dati NULL, è necessario specificare un prefisso di lunghezza. Per ulteriori informazioni, vedere Impostazione della lunghezza del prefisso in file di dati.

Lunghezza dei dati del file host

Lunghezza massima, in byte, del tipo di dati archiviati nel campo specifico del file di dati.

Se si sta creando un file di formato non XML per un file di testo delimitato, è possibile specificare il valore 0 per la lunghezza dei dati del file host di ogni campo dati. Quando viene importato un file di testo delimitato con una lunghezza del prefisso uguale a 0 e un carattere di terminazione, il valore relativo alla lunghezza del campo viene ignorato, in quanto lo spazio di archiviazione utilizzato dal campo equivale alla lunghezza dei dati più il carattere di terminazione.

Per ulteriori informazioni, vedere Definizione della lunghezza di campo tramite bcp.

Carattere di terminazione

Delimitatore di separazione dei campi di un file di dati. I caratteri di terminazione più comuni sono la virgola (,), il carattere di tabulazione (\t) e i caratteri di fine riga (\r\n). Per ulteriori informazioni, vedere Impostazione dei caratteri di terminazione del campo e della riga.

Ordine delle colonne nel server

Ordine in cui sono disposte le colonne nella tabella SQL Server. Se, ad esempio, il quarto campo del file di dati è mappato alla sesta colonna di una tabella di SQL Server, l'ordine delle colonne nel server per il quarto campo è 6.

Per impedire che una colonna della tabella riceva dati dal file di dati, impostare il valore dell'ordine delle colonne del server su 0.

Nome della colonna del server

Nome della colonna copiata dalla tabella SQL Server. Il nome effettivo del campo non è obbligatorio, ma il campo nel file di formato non può essere vuoto.

Regole di confronto a livello di colonna

Regole di confronto utilizzate per archiviare i dati di tipo carattere e Unicode nel file di dati.

[!NOTA]

È possibile modificare un file di formato per consentire l'importazione bulk da un file di dati in cui il numero o l'ordine dei campi è diverso dal numero o dall'ordine delle colonne della tabella. Per ulteriori informazioni, vedere Utilizzo di un file di formato per eseguire il mapping tra campi e colonne durante l'importazione bulk.

Esempi

Nell'esempio seguente viene illustrato un file di formato non XML creato in precedenza denominato myDepartmentIdentical-f-c.fmt. Questo file descrive un campo dati di tipo carattere per ogni colonna della tabella HumanResources.Department nel database di esempio AdventureWorks.

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

10.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     ""

[!NOTA]

Per una figura in cui vengono illustrati i campi del file di formato in relazione a questo file di formato non XML di esempio, vedere "Struttura dei file di formato non XML" più indietro in questo argomento.