Spécification de formats de données pour la compatibilité à l'aide de bcp

Lorsque vous exportez en bloc des données Microsoft SQL Server pour l'importation en bloc dans un autre programme, tel qu'un programme de base de données, les formats de type de données par défaut (natif, caractères ou Unicode) de la table source peuvent être incompatibles avec la mise en page des données attendue par l'autre programme. En cas d'incompatibilité, lors de l'exportation des données, vous devez décrire la mise en page des données.

Notes

Si vous ne maîtrisez pas les formats de données pour l'importation ou l'exportation de données, consultez Formats de date pour l'importation ou l'exportation de données.

La commande bcp vous permet de spécifier la structure de chaque champ au sein d'un fichier de données, selon les attributs de format de données suivants :

  • Type de stockage de fichier

    Le type de stockage de fichier décrit la façon dont les données sont stockées dans le fichier de données. Les données peuvent être exportées vers un fichier de données au type de table de base de données (format natif), dans sa représentation caractères (format caractères) ou tout type de données pour lesquelles la conversion implicite est prise en charge ; par exemple, en copiant un type de données smallint comme int. Les types de données définis par l'utilisateur sont exportés en tant que leurs propres types de base. Pour plus d'informations, consultez Spécification du type de stockage de fichier à l'aide de bcp.

  • Longueur de préfixe

    Pour permettre le stockage de fichier le plus compact lors de l'exportation en bloc de données en format natif vers un fichier de données, la commande bcp ajoute devant chaque champ un ou plusieurs caractères indiquant la longueur du champ. Ces caractères sont appelés des caractères de préfixe de longueur. Pour plus d'informations, consultez Spécification de la longueur de préfixe dans des fichiers de données.

  • Longueur du champ

    La longueur de champ indique le nombre maximal de caractères nécessaires pour représenter les données au format caractères. La longueur de champ est déjà connue si les données sont stockées au format natif. Pour plus d'informations, consultez Spécification de la longueur des champs au moyen de bcp.

  • Marque de fin de champ

    Pour les champs de données caractères, des caractères de fin facultatifs vous permettent de marquer la fin de chaque champ dans un fichier de données (à l'aide d'une marque de fin de champ), ainsi que la fin de chaque ligne (avec une marque de fin de ligne). Les caractères de fin constituent un moyen d'indiquer aux programmes lisant le fichier de données la fin d'un champ ou d'une ligne et le début du suivant. Pour plus d'informations, consultez Spécification des indicateurs de fin de champ et de fin de ligne.

Vue d'ensemble d'invites spécifiques au champ

Si une commande bcp interactive contient l'option in ou out mais ne contient pas également soit le commutateur de format de fichier (-f), soit le commutateur de format de données (-n, -c, -w ou -N), pour chaque colonne de la table source ou cible, la commande demande, en retour, chacun des attributs précédents. Dans chaque message, la commande bcp fournit une valeur par défaut basée sur le type de données SQL Server de la colonne de table. L'acceptation de la valeur par défaut pour tous les messages produit le même résultat que la spécification du format natif (-n) sur la ligne de commande. Chaque message affiche une valeur par défaut entre crochets : [default]. En appuyant sur la touche Entrée, vous acceptez les valeurs par défaut affichées. Pour spécifier une valeur différente de celle par défaut, entrez cette nouvelle valeur à partir de l'invite.

Exemple

L'exemple suivant utilise la commande bcp pour l'exportation en bloc de données interactive à partir de la table HumanResources.myTeam vers le fichier myTeam.txt. Avant de pouvoir exécuter cet exemple, vous devez créer cette table. Pour plus d'informations sur la table et la manière de la créer, consultez Création de la table HumanResources.myTeam.

La commande ne spécifie ni un fichier de format, ni un type de données, l'utilitaire bcp demande donc des informations de format de données. À l'invite de commandes Microsoft Windows, entrez :

bcp AdventureWorks2008R2.HumanResources.myTeam out myTeam.txt -T

Pour chaque colonne, l'utilitaire bcp demande des valeurs spécifiques au champ. L'exemple suivant illustre les messages spécifiques au champ pour les colonnes EmployeeID et Name de la table. En outre, il suggère le type de stockage de fichier par défaut (le format natif) pour chaque colonne. Les longueurs de préfixe des colonnes EmployeeID et Name sont 0 et 2, respectivement. L'utilisateur spécifie une virgule (,) en tant que marque de fin pour chaque champ.

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

Des messages équivalents (si nécessaire) s'affichent pour chacune des colonnes de table dans l'ordre.

Stockage de données champ par champ dans un fichier de format non XML

Une fois toutes les colonnes de table spécifiées, la commande bcp vous demande de générer facultativement un fichier de format non XML qui stocke les informations champ par champ venant d'être fournies (voir l'exemple précédent). Si vous choisissez de générer un fichier de format, vous pouvez effectuer cette opération dès que vous exportez des données vers cette table ou que vous importez des données structurées de la sorte dans SQL Server.

Notes

Vous pouvez utiliser le fichier de format pour importer en bloc des données à partir du fichier de données vers une instance de SQL Server ou exporter en bloc des données depuis la table, sans devoir spécifier à nouveau le format. Pour plus d'informations, consultez Fichiers de format pour l'importation ou l'exportation de données.

L'exemple suivant crée un fichier de format non XML nommé myFormatFile.fmt.

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

Le nom par défaut du fichier de format est bcp.fmt, mais vous pouvez spécifier un nom différent si vous le souhaitez.

Notes

Pour un fichier de données qui utilise un seul format de données pour son type de stockage de fichiers, tel qu'un format caractères ou natif, vous pouvez créer rapidement un fichier de format sans exportation ni importation de données, à l'aide de l'option format. Cette approche présente les avantages d'être aisée et de vous permettre de créer un fichier de format XML ou non XML. Pour plus d'informations, consultez Création d'un fichier de format.

Dans cette section

Cette section contient les rubriques suivantes :

Rubrique

Attribut de format de données

Spécification du type de stockage de fichier à l'aide de bcp

Contient des informations sur la spécification du type de stockage de fichier dans une commande bcp.

Spécification de la longueur de préfixe dans des fichiers de données

Contient des informations sur la spécification de la longueur de préfixe dans une commande bcp.

Spécification de la longueur des champs au moyen de bcp

Contient des informations sur la spécification de la longueur de champ dans une commande bcp.

Spécification des indicateurs de fin de champ et de fin de ligne

Contient des informations sur la spécification de marques de fin de champ et de ligne dans une commande bcp.

Stockage des données au format caractère (Char)

Contient des informations sur la manière dont des données au format caractères sont stockées dans un fichier de données exporté.