Création d'un fichier de format

Lorsque vous importez en bloc dans une table SQL Server ou exportez des données en bloc depuis une table, utilisez un fichier de format pour stocker les informations de format pour chaque champ dans un fichier de données relatif à cette table. Un fichier de format fournit un système souple d'écriture de fichiers de données, nécessitant peu ou aucune édition pour se conformer aux autres formats de données, ou de lecture de fichiers de données provenant d'autres logiciels.

SQL Server 2005 et les versions ultérieures prennent en charge deux types de fichiers de format : XML et 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 des nouveaux fichiers de format, car ils offrent plusieurs avantages par rapport aux fichiers de format non XML. Pour plus d'informations, consultez Introduction aux fichiers de format.

Notes

Dans SQL Server 2008 R2, le numéro de version de l'utilitaire bcp (Bcp.exe) est 10.50, mais le numéro de version attribué aux nouveaux fichiers de format est 10.0, le même que dans SQL Server 2008. La version de l'utilitaire bcp servant à lire un fichier de format doit être identique ou ultérieure à la version du fichier de format. Par exemple, SQL Server 2008bcp peut lire un fichier de format version 9.0 généré par SQL Server 2005bcp, mais SQL Server 2005bcp ne peut pas lire un fichier de format version 10.0 généré par SQL Server 2008 ou SQL Server 2008 R2bcp.

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 :

bcptable_or_viewformat nul -fformat_file_name

Notes

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 Description des fichiers de format non XML.

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 AdventureWorks2008R2. La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupName et ModifiedDate.

Notes

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 nommé Department-n.xml et destiné à la table AdventureWorks2008R2HumanResources.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-fformat_file

Format de fichier non XML.

-n

Types de données natifs.

-T

Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée utilisant la sécurité intégrée. Si le commutateur -T n'est pas fourni, vous devez indiquer -U et -P afin d'ouvrir correctement une session.

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

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

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

10.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 Description des fichiers de format non XML.

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 nommé Department.fmt et destiné à la table AdventureWorks2008R2HumanResources.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-fformat_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 utilisant la sécurité intégrée. Si le commutateur -T n'est pas fourni, vous devez indiquer -U et -P afin d'ouvrir correctement une session.

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

bcp AdventureWorks2008R2.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 Description des fichiers de format non XML.

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 AdventureWorks2008R2.HumanResources.Department format nul -T -N -f Department-n.fmt

Pour plus d'informations sur l'utilisation des données natives Unicode, consultez Utilisation du format natif Unicode pour importer ou exporter des données.

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 AdventureWorks2008R2.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 Utilisation du format caractère Unicode pour importer ou exporter des données.

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 :

bcptable_or_viewformat nul-fformat_file_name-x

Notes

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 non XML, consultez Description des fichiers de format XML. Pour plus d'informations sur la syntaxe, consultez Syntaxe de schéma pour les fichiers de format XML. Pour obtenir des exemples, consultez Exemples de fichiers de format XML.

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 AdventureWorks2008R2. La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupName et ModifiedDate.

Notes

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 nommé Department.xml et destiné à la table AdventureWorks2008R2HumanResources.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-fformat_file-x

Fichier de format XML.

-c

Données de type caractère.

-t,

Virgule (,) servant d'indicateur de fin de champ.

RemarqueRemarque
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

Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée utilisant la sécurité intégrée. Si le commutateur -T n'est pas fourni, vous devez indiquer -U et -P afin d'ouvrir correctement une session.

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

bcp AdventureWorks2008R2.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 Syntaxe de schéma pour les fichiers de format XML. Pour plus d'informations sur les données de type caractère, consultez Utilisation du format caractère pour importer ou exporter des données.

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

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

Fichier de format XML.

-n

Types de données natifs.

-T

Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée utilisant la sécurité intégrée. Si le commutateur -T n'est pas fourni, vous devez indiquer -U et -P afin d'ouvrir correctement une session.

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

bcp AdventureWorks2008R2.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 Syntaxe de schéma pour les fichiers de format XML. Pour plus d'informations sur l'utilisation des données natives, consultez Utilisation du format natif pour importer ou exporter des données.

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 :