Créer un fichier de format (SQL Server)

Lorsque vous importez des données en bloc dans une table SQL Server ou exportez en bloc des données à partir d'une table, utilisez un fichier de format vers un système souple pour l'écriture de fichiers de données nécessitant peu ou pas d'édition pour la conformité aux autres formats de données ou pour la lecture des fichiers de données provenant d'autres 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 2008 bcp peut lire un fichier de format version 9.0 généré par SQL Server 2005 bcp, mais SQL Server 2005 bcp ne peut pas lire un fichier de format version 10.0 généré par SQL Server 2008 bcp.

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, -w ou -N) et les délimiteurs de la table ou de la vue.

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

Pour créer un fichier de format à l'aide d'une commande bcp, spécifiez l'argument format et utilisez nul à la place d'un chemin d'accès de fichier de données. L'option format nécessite aussi l'option -f, telle que :

bcp table_or_view format nul -f format_file_name

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

Ces exemples créent la table HumanResources.Department dans l'exemple de base de données AdventureWorks2012 . La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupName et 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 non-XML pour des données natives

L'exemple suivant crée un fichier de format XML appelé Department-n.xml et destiné à la table AdventureWorks2012 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

format nul -f format_file

Format de fichier non-XML.

-n

Spécifie les types de données natifs.

-T

L'utilitaire bcp se connecte à SQL Server à l'aide d'une connexion approuvée à 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 :

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

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 appelé Department.fmt et destiné à la table AdventureWorks2012 HumanResources.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

format nul -f format_file

Format de fichier non-XML.

-c

Données de type caractère.

-T

L'utilitaire bcp se connecte à SQL Server à l'aide d'une connexion approuvée à 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 :

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

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 créer un fichier de format à l'aide d'une commande bcp, spécifiez l'argument format et utilisez nul à la place d'un chemin d'accès 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_or_view format nul -f format_file_name -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

Ces exemples créent la table HumanResources.Department dans l'exemple de base de données AdventureWorks2012 . La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupName et 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 appelé Department.xml et destiné à la table AdventureWorks2012 HumanResources.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

format nul -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 alors pas nécessaire.

-T

L'utilitaire bcp se connecte à SQL Server à l'aide d'une connexion approuvée à 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.xml contient 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.xml et 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

format nul -f format_file -x

Fichier de format XML.

-n

Spécifie les types de données natifs.

-T

L'utilitaire bcp se connecte à SQL Server à l'aide d'une connexion approuvée à 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.xml contient 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 l'utilisation des données natives, consultez Utiliser le format natif 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, consultez les rubriques suivantes :

Voir aussi

Référence

Utilitaire bcp

Concepts

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)