Description des fichiers de format non XML
Dans SQL Server 2000 et les versions précédentes, l'exportation et l'importation en bloc fonctionnent avec un seul type de fichier de format. Ce format est toujours pris en charge dans SQL Server 2005 et les versions ultérieures, ainsi que les fichiers de format XML qui constituent une autre possibilité. Pour les différencier des types de fichiers de format d'origine, ceux-ci sont appelés fichiers de format non XML.
Notes
Les fichiers de format XML offrent différents avantages. Pour plus d'informations, consultez Fichiers de format pour l'importation ou l'exportation de données.
Les fichiers de format sont généralement créés pour un format de données particulier à l'aide de la commande bcp selon une des méthodes suivantes :
Vous pouvez créer l'un ou l'autre fichier de format (par exemple des données caractère ou des données natives) en spécifiant l'option format dans la commande bcp. Pour plus d'informations, consultez Création d'un fichier de format.
Vous pouvez créer un fichier de format non XML qui contient des attributs spécifiés de manière interactive pour chaque champ de données. Pour plus d'informations, consultez Spécification de formats de données pour la compatibilité à l'aide de bcp.
Notes
Lorsque vous spécifiez un fichier de format existant dans une commande bcp, cette dernière utilise les valeurs enregistrées dans un fichier de format et ne vous demande alors pas le type de stockage dans le fichier, la longueur du préfixe, la longueur des champs, ni l'indicateur de fin de champ.
Structure des fichiers de format non XML
Un fichier de format non XML est un fichier texte contenant une structure particulière. Il contient des informations sur le type de stockage du fichier, la longueur du préfixe et celle des champs, ainsi que le caractère de fin de champ de chaque colonne constituant la table.
L'exemple suivant présente les champs de fichier de format d'un fichier de format non XML.
Les champs Version et Nombre de colonnes n'apparaissent qu'une seule fois. Leurs significations sont décrites dans le tableau suivant.
Champ du fichier de format |
Description |
---|---|
Version |
Numéro de version du fichier de format. Pour la plupart des versions de SQL Server, la version de fichier de format est identique à celle de l'utilitaire bcp (Bcp.exe), à savoir :
Version de SQL ServerVersion de fichier de formatVersion bcp 1
SQL Server version 7.07.07.0
SQL Server 2000 8.08.0
SQL Server 2005 9.09.0
SQL Server 2008 10.010.0
SQL Server 2008 R2 10.010.50
1 Ce numéro de version n'est reconnu que par bcp, et non par Transact-SQL.
Remarque
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.
|
Nombre de colonnes |
Nombre de champs dans le fichier de données. Il doit être identique pour toutes les lignes. |
Les autres champs de fichier de format décrivent les champs de données à importer ou exporter en bloc. Chaque champ de données nécessite une ligne séparée dans le fichier de format. Chaque ligne de fichier de format contient les valeurs des champs de fichier de format décrits dans le tableau suivant.
Champ du fichier de format |
Description |
---|---|
Ordre des champs du fichier hôte |
Nombre indiquant la position de chaque champ dans le fichier de données. Le premier champ de la ligne correspond à la valeur 1, etc. |
Type de données du fichier hôte |
Indique que le type de données est stocké dans un champ précis du fichier de données. Dans le cas des fichiers de données ASCII, utilisez SQLCHAR ; pour les fichiers de données au format natif, utilisez les types de données par défaut. Pour plus d'informations, consultez Spécification du type de stockage de fichier à l'aide de bcp. |
Longueur de préfixe |
Nombre de caractères du préfixe de longueur pour le champ. Les longueurs de préfixe valides sont 0, 1, 2, 4 et 8. Pour éviter de spécifier le préfixe de longueur, définissez la valeur 0. Un préfixe de longueur doit être spécifié si le champ contient des valeurs de données NULL. Pour plus d'informations, consultez Spécification de la longueur de préfixe dans des fichiers de données. |
Longueur des données du fichier hôte |
Longueur maximale, en octets, du type des données stockées dans le champ particulier du fichier de données. Si vous créez un fichier de format non XML pour un fichier texte délimité, vous pouvez spécifier 0 pour la longueur des données du fichier hôte de chaque champ de données. Lors de l'importation d'un fichier de texte délimité ayant un indicateur de fin et une longueur de préfixe de 0, la valeur de longueur de champ est ignorée, car l'espace de stockage utilisé par le champ est égal à la longueur des données plus le terminateur. Pour plus d'informations, consultez Spécification de la longueur des champs au moyen de bcp. |
Indicateur de fin |
Caractère de séparation utilisé pour délimiter les champs dans un fichier de données. Les indicateurs de fin communs sont la virgule (,), la tabulation (\t) et la fin de ligne (\r\n). Pour plus d'informations, consultez Spécification des indicateurs de fin de champ et de fin de ligne. |
Ordre des colonnes du serveur |
Ordre dans lequel les colonnes apparaissent dans la table SQL Server. Par exemple, si le quatrième champ du fichier de données est mappé sur la sixième colonne d'une table SQL Server, l'ordre de la colonne sur le serveur correspondant au quatrième champ est défini sur 6. Pour éviter qu'une colonne d'une table reçoive des données d'un fichier de données, définissez l'ordre de colonne sur le serveur sur 0. |
Nom de colonne du serveur |
Nom de la colonne pris de la table SQL Server. Il n'est pas indispensable d'utiliser le nom réel du champ, mais le champ ne doit pas être vide dans le fichier de format. |
Classement par colonnes |
Classement utilisé pour stocker des caractères et des données Unicode dans le fichier de données. |
Notes
Vous pouvez modifier un fichier de format afin de pouvoir importer des données en bloc à partir d'un fichier de données dans lequel le nombre et/ou l'ordre des champs diffèrent du nombre ou de l'ordre des colonnes de la table. Pour plus d'informations, consultez Utilisation d'un fichier de format pour associer des champs à des colonnes lors de l'importation en bloc.
Exemples
L'exemple suivant affiche un fichier de format non XML créé précédemment (myDepartmentIdentical-f-c.fmt). Ce fichier décrit un champ de données de type caractère pour chaque colonne de la table HumanResources.Department dans la base de données exemple AdventureWorks2008R2.
Le fichier de format généré myDepartmentIdentical-f-c.fmt contient les informations suivantes :
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 ""
Notes
Pour une illustration des champs de fichier de format en relation à cet exemple de fichier de format non XML, consultez « Structure des fichiers de format non XML », plus haut dans cette rubrique.
Voir aussi