Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Cet article 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.
Lors d’une importation en bloc dans une table SQL Server ou d’une exportation en bloc des données à partir d’une table, vous pouvez utiliser un fichier de format comme système flexible pour écrire des fichiers de données. Ces fichiers nécessitent peu de modifications, voire aucune, pour se conformer aux autres formats de données, ou pour lire des fichiers de données provenant d'autres logiciels.
Limites
La version de l’utilitaire bcp (bcp.exe) utilisée pour lire un fichier de format doit être la même ou plus tardive que la version utilisée pour créer le fichier de format. Par exemple, SQL Server 2025 (17.x) bcp peut lire un fichier au format version 16.0, généré par SQL Server 2022 (16.xbcp), mais SQL Server 2022 (16.x) bcp ne peut pas lire un fichier au format version 17.0, qui est généré par SQL Server 2025 (17.x). bcp
Remarque
Cette syntaxe, y compris l’insertion en bloc, n’est pas prise en charge dans Azure Synapse Analytics. Dans Azure Synapse Analytics et d’autres intégrations de plateforme de base de données cloud, effectuez le déplacement des données via l’instruction COPY dans Azure Data Factory ou à l’aide d’instructions T-SQL telles que COPY INTO et PolyBase.
Créer des fichiers de format
SQL Server prend en charge deux types de fichiers de format : le format non-XML et le format 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 fichiers de format, car elle offre plusieurs avantages par rapport aux fichiers de format non XML.
Les exemples de code de cet article utilisent les bases de données d'exemple AdventureWorks2025 ou AdventureWorksDW2025, que vous pouvez télécharger à partir de la page d'accueil Microsoft SQL Server Samples and Community Projects. 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.
Créer un fichier de formatage
Pour créer bcp un fichier de format, spécifiez l’argument format et utilisez nul au lieu d’un chemin de fichier de données. L’option format nécessite toujours l’option -f .
Pour créer un fichier au format XML, vous devez spécifier l’option -x , telle que bcp <table_or_view> format nul -f <format_file_name> -x.
Pour distinguer un fichier au format XML, utilisez .xml comme extension de nom de fichier, par exemple, MyTable.xml.
Pour des informations sur la structure et les champs des fichiers au format XML, voir fichiers au format XML.
Exemples
Cette section contient des exemples montrant comment créer bcp un fichier de format. La table HumanResources.Department contient quatre colonnes : DepartmentID, Name, GroupNameet ModifiedDate.
R : Créer un fichier de format pour les données des caractères
L’exemple suivant crée un fichier de format pour la HumanResources.Department table en utilisant des formats de données de caractères.
Créez un fichier au format XML nommé Department-c.xml. Le fichier de format utilise un terminateur de champ non par défaut (,). La section suivante montre le contenu du fichier de format généré.
La bcp commande contient les qualificatifs suivants.
| Qualificateurs | Description |
|---|---|
format nul -x -f <format_file> |
Spécifie le fichier de format XML. |
-c |
Spécifie des données de caractères. |
-t, |
Spécifie une virgule (,) comme terminateur de champ.Remarque : si le fichier de données utilise la marque de fin de champ par défaut ( \t), le commutateur -t n’est pas nécessaire. |
-T |
Précise que bcp se connecte à SQL Server avec une connexion de confiance en utilisant une sécurité intégrée. Si vous ne spécifiez pas -T, vous devez spécifier -U et -P pour vous connecter correctement. |
Dans la fenêtre d'invite de commandes Windows, tapez la commande bcp suivante :
bcp AdventureWorks2025.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="http://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 des informations sur la syntaxe de ce fichier de format, voir fichiers au format XML. Pour des informations sur les données de caractères, voir Utiliser le format de caractère pour importer ou exporter des données.
B. Créer un fichier de format pour les données natives
L’exemple suivant crée un fichier de format pour la HumanResources.Department table en utilisant des types de données natifs.
Créez un fichier au format XML nommé Department-n.xml. La section suivante montre le contenu du fichier de format généré.
La bcp commande contient les qualificatifs suivants.
| Qualificateurs | Description |
|---|---|
format nul -x -f <format_file> |
Spécifie le fichier de format XML. |
-n |
Spécifie les types de données natifs. |
-T |
Précise que bcp se connecte à SQL Server avec une connexion de confiance en utilisant une sécurité intégrée. Si vous ne spécifiez pas -T, vous devez spécifier -U et -P pour vous connecter. |
Dans la fenêtre d'invite de commandes Windows, tapez la commande bcp suivante :
bcp AdventureWorks2025.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="http://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 des informations sur la syntaxe de ce fichier de format, voir fichiers au format XML. Pour des informations sur l’utilisation des données natives, voir Utiliser le format natif pour importer ou exporter des données.
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 AdventureWorks2025.HumanResources.Department format nul -T -N -f Department-n.fmt
Pour plus d’informations sur l’utilisation des données natives Unicode, voir Utiliser le 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 caractères Unicode pour la table HumanResources.Department qui utilise les terminateurs par défaut, utilisez la commande suivante :
bcp AdventureWorks2025.HumanResources.Department format nul -T -w -f Department-w.fmt
Pour plus d’informations sur l’utilisation des données de caractères Unicode, voir Utiliser le format de caractères Unicode pour importer ou exporter des données.
E. Utilisation d’un fichier de format avec l’option de page de code
Lorsque vous créez un fichier format avec bcp format, il écrit des informations sur la page de collation et de code dans le fichier format.
L’exemple de fichier de format suivant, pour une table avec cinq colonnes, inclut le classement.
13.0
5
1 SQLCHAR 0 0 "\t" 1 c_0 Cyrillic_General_CS_AS
2 SQLCHAR 0 0 "\t" 2 c_1 Cyrillic_General_CS_AS
3 SQLCHAR 0 3000 "\t" 3 c_2 Cyrillic_General_CS_AS
4 SQLCHAR 0 5 "\t" 4 c_3 ""
5 SQLCHAR 0 41 "!!!\r\r\n" 5 c_4 ""
Si vous essayez d’importer des données dans SQL Server en utilisant bcp in -c -C65001 -f format_file ... ou avec BULK INSERTOPENROWSET ou avec FORMATFILE='format_file' CODEPAGE=65001 ..., les informations de compilation ou de page de code dans le fichier de format ont priorité sur l’option 65001.
Ainsi, si vous générez un fichier formaté, vous devez supprimer manuellement les informations de compilation du fichier de format généré avant de commencer à importer les données dans SQL Server.
L’exemple suivant montre le fichier format sans les informations de collation.
13.0
5
1 SQLCHAR 0 0 "\t" 1 c_0 ""
2 SQLCHAR 0 0 "\t" 2 c_1 ""
3 SQLCHAR 0 3000 "\t" 3 c_2 ""
4 SQLCHAR 0 5 "\t" 4 c_3 ""
5 SQLCHAR 0 41 "!!!\r\r\n" 5 c_4 ""
Mapper les champs de données aux colonnes du tableau
Un fichier format créé par bcp décrit toutes les colonnes du tableau dans l’ordre. Vous pouvez modifier un fichier de format pour réarranger ou omettre les colonnes du tableau. 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 articles suivants :
- Utilisez un fichier de format pour sauter une colonne de tableau
- Utilisez un fichier de formatage pour sauter un champ de données
- Utilisez un fichier de format pour associer les colonnes de table aux champs de fichiers de données