Partager via


Créer un fichier de format (SQL Server)

Lorsque vous importez en bloc dans une table SQL Server ou exportez en bloc des données à partir d’une table, vous pouvez utiliser un fichier de format dans un système flexible pour écrire des fichiers de données qui nécessitent peu ou pas de modification pour se conformer à d’autres formats de données ou lire des fichiers de données à partir d’autres programmes logiciels.

SQL Server prend en charge deux types de fichier de format : format XML et format non XML. Le format non XML est le format d’origine pris en charge dans les versions précédentes de SQL Server.

En règle générale, les fichiers de format XML et non-XML sont interchangeables. Toutefois, nous recommandons d'utiliser la syntaxe XML pour les nouveaux fichiers de format, car elle offre plusieurs avantages par rapport aux fichiers de format non-XML.

Remarque

La version de l’utilitaire bcp (Bcp.exe) servant à lire un fichier de format doit être identique ou ultérieure à la version utilisée pour créer le fichier de format. Par exemple, SQL Server 2012bcp peut lire un fichier de format version 10.0, généré par SQL Server 2008bcp, mais SQL Server 2008bcp ne peut pas lire un fichier de format version 11.0, généré par SQL Server 2012bcp.

Cette rubrique décrit l'utilisation de l' utilitaire bcp pour créer un fichier de format pour une table donnée. Le fichier de format est basé sur l’option de type de données spécifiée (-n, -c, -wou -N) et les délimiteurs de la table ou de la vue.

Création d’un fichier de format non-XML

Pour utiliser une commande bcp pour créer un fichier de format, spécifiez l’argument format et utilisez nul à la place d’un chemin de fichier de données. L’option format requiert également l’option -f , comme suit :

bcptable_ou_vueformat nul -fnom_fichier_de_format

Remarque

Pour bien distinguer un fichier au format non-XML, nous vous recommandons d'utiliser l'extension de nom de fichier .fmt, par exemple MaTable.fmt.

Pour plus d’informations sur la structure et les champs des fichiers de format non-XML, consultez Fichiers de format non-XML (SQL Server).

Exemples

Cette section contient les exemples suivants qui illustrent l’utilisation des commandes bcp pour créer un fichier de format non-XML :

  • A. Création d'un fichier de format non-XML pour des données natives

  • B. Création d'un fichier de format non-XML pour des données de type caractère

  • C. Création d'un fichier de format non-XML pour des données Unicode natives

  • D. Création d'un fichier de format non-XML pour des données Unicode de type caractère

Les exemples utilisent la HumanResources.Department table dans l’exemple de base de données AdventureWorks2012 . La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupNameet ModifiedDate.

A. Création d'un fichier de format non-XML pour des données natives

L’exemple suivant crée un fichier de format XML, Department-n.xmlpour la table AdventureWorks2012HumanResources.Department . Le fichier de format utilise des types de données natives. Le contenu du fichier ainsi généré vous est présenté après la commande.

La commande bcp contient les qualificateurs suivants.

Qualificateurs Description
formatnul-f format_file Format de fichier non-XML.
-n Spécifie les types de données natifs.
-T Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée qui utilise la sécurité intégrée. Si -T n’est pas spécifié, vous devez indiquer -U et -P pour pouvoir vous connecter.

Dans la fenêtre d'invite de commandes Windows, tapez la commande bcp suivante :

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

Le fichier de format généré, Department-n.fmt, contient les informations suivantes :

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

Pour plus d’informations, consultez Fichiers de format non-XML (SQL Server).

B. Création d'un fichier de format non-XML pour des données de type caractère

L’exemple suivant crée un fichier de format XML, Department.fmtpour la table AdventureWorks2012HumanResources.Department . Le fichier de format utilise les formats de données de type caractère ainsi qu'un indicateur de fin de champ qui n'est pas défini par défaut (,). Le contenu du fichier ainsi généré vous est présenté après la commande.

La commande bcp contient les qualificateurs suivants.

Qualificateurs Description
formatnul-f format_file Format de fichier non-XML.
-c Données de type caractère.
-T Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée qui utilise la sécurité intégrée. Si -T n’est pas spécifié, vous devez indiquer -U et -P pour pouvoir vous connecter.

Dans la fenêtre d'invite de commandes Windows, tapez la commande bcp suivante :

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

Le fichier de format généré, Department-c.fmt, contient les informations suivantes :

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

Pour plus d’informations, consultez Fichiers de format non-XML (SQL Server).

C. Création d'un fichier de format non-XML pour des données Unicode natives

Pour créer un fichier de format non-XML pour des données Unicode natives destinées à la table HumanResources.Department, utilisez la commande suivante :

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

Pour plus d’informations sur l’utilisation des données natives Unicode, consultez Utiliser le format natif Unicode pour importer ou exporter des données (SQL Server).

D. Création d'un fichier de format non-XML pour des données Unicode de type caractère

Pour créer un fichier de format non-XML pour des données Unicode de type caractère, s'appuyant sur des indicateurs de fin définis par défaut et destinées à la table HumanResources.Department, utilisez la commande suivante :

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

Pour plus d’informations sur l’utilisation des données de caractères Unicode, consultez Utiliser le format caractère Unicode pour importer ou exporter des données (SQL Server).

Création d’un fichier de format XML

Pour utiliser une commande bcp pour créer un fichier de format, spécifiez l’argument format et utilisez nul à la place d’un chemin de fichier de données. L’option format nécessite toujours l’option -f ; la création d’un fichier de format XML nécessite également l’option -x , comme suit :

bcp table_ou_vue format nul-f nom_fichier_de_format -x

Remarque

Pour bien distinguer un fichier de format XML, nous vous recommandons d'utiliser l'extension de nom de fichier .xml, par exemple MaTable.xml.

Pour plus d’informations sur la structure et les champs des fichiers de format XML, consultez Fichiers de format XML (SQL Server).

Exemples

Cette section contient les exemples suivants, qui illustrent l’utilisation des commandes bcp pour créer un fichier de format XML :

  • A. Création d'un fichier de format XML pour des données de type caractère

  • B. Création d'un fichier de format XML pour des données natives

Les exemples utilisent la HumanResources.Department table dans l’exemple de base de données AdventureWorks2012 . La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupNameet ModifiedDate.

Remarque

Adventure Works Cycles est une société de fabrication fictive utilisée pour illustrer des scénarios et des concepts de base de données.

A. Création d'un fichier de format XML pour des données de type caractère

L’exemple suivant crée un fichier de format XML, Department.xmlpour la table AdventureWorks2012HumanResources.Department . Le fichier de format utilise les formats de données de type caractère ainsi qu'un indicateur de fin de champ qui n'est pas défini par défaut (,). Le contenu du fichier ainsi généré vous est présenté après la commande.

La commande bcp contient les qualificateurs suivants.

Qualificateurs Description
formatnul-f format_file -x Fichier de format XML.
-c Données de type caractère.
-t , Virgule (,) servant d’indicateur de fin de champ.

Remarque : Si le fichier de données utilise l’indicateur de fin de champ défini par défaut (à savoir\t), le commutateur -t n’est pas nécessaire.
-T Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée qui utilise la sécurité intégrée. Si -T n’est pas spécifié, vous devez indiquer -U et -P pour pouvoir vous connecter.

Dans la fenêtre d'invite de commandes Windows, tapez la commande bcp suivante :

bcp AdventureWorks2012.HumanResources.Department format nul -c -x -f Department-c..xml -t, -T  

Le fichier de format généré Department-c.xmlcontient les éléments XML suivants :

<?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>  

Pour obtenir des informations sur la syntaxe de ce fichier de format, consultez Fichiers de format XML (SQL Server). Pour plus d’informations sur les données de type caractère, consultez Utiliser le format caractère pour importer ou exporter des données (SQL Server).

B. Création d'un fichier de format XML pour des données natives

L'exemple suivant crée un fichier de format XML appelé Department-n.xmlet destiné à la table HumanResources.Department . Le fichier de format utilise des types de données natives. Le contenu du fichier ainsi généré vous est présenté après la commande.

La commande bcp contient les qualificateurs suivants.

Qualificateurs Description
formatnul-f format_file -x Fichier de format XML.
-n Spécifie les types de données natifs.
-T Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée qui utilise la sécurité intégrée. Si -T n’est pas spécifié, vous devez indiquer -U et -P pour pouvoir vous connecter.

Dans la fenêtre d'invite de commandes Windows, tapez la commande bcp suivante :

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

Le fichier de format généré Department-n.xmlcontient les éléments XML suivants :

<?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>  

Pour obtenir des informations sur la syntaxe de ce fichier de format, consultez Fichiers de format XML (SQL Server). Pour plus d’informations sur les données de type caractère, consultez Utiliser le format caractère pour importer ou exporter des données (SQL Server).

Mappage des champs de données aux colonnes de table

Lorsqu’il est créé par bcp, un fichier de format décrit toutes les colonnes de table dans l’ordre. Vous pouvez modifier ce fichier pour réorganiser ou omettre des lignes de la table. Vous pouvez ainsi personnaliser un fichier de format en fonction d'un fichier de données dont les champs ne sont pas mappés directement aux colonnes de table. Pour plus d’informations, voir les rubriques suivantes :

Voir aussi

Utilitaire bcp
Utiliser un fichier de format pour mapper les colonnes d’une table aux champs d’un fichier de données (SQL Server)
Utiliser un fichier de format pour ignorer une colonne de table (SQL Server)
Utiliser un fichier de format pour ignorer un champ de données (SQL Server)
Fichiers de format non-XML (SQL Server)
Fichiers de format XML (SQL Server)