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

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 avec son type de table de base de données (format natif), dans sa représentation de caractères (format caractère) ou dans tout type de données pour lequel la conversion implicite est prise en charge (par exemple, en copiant un type de données smallint en tant que int). Les types de données définis par l'utilisateur sont exportés avec leurs types de base.

[!REMARQUE]

Pour plus d'informations sur la conversion de données, consultez Conversion de types de données (moteur de base de données).

Invite bcp pour le type de stockage de fichier

Si une commande bcp contient l'option in ou out sans le commutateur de fichier de format (-f) ou un commutateur de format de données (-n, -c, -w ou -N), la commande demande le type de stockage de fichier de chaque champ de données :

Enter the file storage type of field <field_name> [<default>]:

Votre réponse à cette invite dépend de la tâche effectuée :

  • Pour exporter en bloc des données d'une instance de MicrosoftSQL Server vers un fichier de données au format de stockage le plus compact possible (format de données natif), vous devez accepter les types de stockage de fichier par défaut fournis par l'utilitaire bcp. Pour la liste des types de stockage de fichier natifs, consultez la section « Types de stockage de fichier natifs » plus loin dans cette rubrique.

  • Pour exporter en bloc des données d'une instance de SQL Server vers un fichier de données au format caractère, spécifiez le paramètre char comme type de stockage de fichier pour toutes les colonnes de la table.

  • Pour importer en bloc des données dans une instance de SQL Server à partir d'un fichier de données, spécifiez le type de stockage de fichier char pour les types stockés au format caractère et, pour les données stockées dans le format de type de données natif, spécifiez l'un des types de stockage de fichier appropriés :

    Type de stockage de fichier

    Entrer sur la ligne de commande

    char1

    c[har]

    varchar

    c[har]

    nchar

    w

    nvarchar

    w

    text2

    T[ext]

    ntext2

    W

    binary

    x

    varbinary

    x

    image2

    I[mage]

    datetime

    d[ate]

    smalldatetime

    D

    time

    te

    date

    de

    datetime2

    d2

    datetimeoffset

    do

    decimal

    n

    numeric

    n

    float

    f[loat]

    real

    r

    Int

    i[nt]

    bigint

    B[igint]

    smallint

    s[mallint]

    tinyint

    t[inyint]

    money

    m[oney]

    smallmoney

    M

    bit

    b[it]

    uniqueidentifier

    u

    sql_variant

    V[ariant]

    timestamp

    x

    UDT (type de données défini par l'utilisateur)

    U

    XML

    X

    1 L'interaction de la longueur de champ, de la longueur de préfixe et des terminateurs détermine la quantité d'espace de stockage alloué dans un fichier de données pour des données autres que des caractères exportées en tant que type de stockage de fichier char. Pour plus d'informations, consultez Stockage des données au format caractère (Char).

    2 Les types de données ntext, text et image seront supprimés dans une future version de SQL Server. Dans un nouveau travail de développement, évitez ces types de données et prévoyez la modification des applications qui les utilisent actuellement. Utilisez plutôt nvarchar(max), varchar(max) et varbinary(max). Pour plus d'informations, consultez Utilisation de types de données de valeur élevée.

Types de stockage de fichier natifs

Chaque type de stockage de fichier natif est enregistré dans le fichier de format comme un type de données du fichier hôte correspondant.

Type de stockage de fichier

Type de données du fichier hôte

char1

SQLCHAR

varchar

SQLCHAR

nchar

SQLNCHAR

nvarchar

SQLNCHAR

text2

SQLCHAR

ntext2

SQLNCHAR

binary

SQLBINARY

varbinary

SQLBINARY

image2

SQLBINARY

datetime

SQLDATETIME

smalldatetime

SQLDATETIM4

decimal

SQLDECIMAL

numeric

SQLNUMERIC

float

SQLFLT8

real

SQLFLT4

int

SQLINT

bigint

SQLBIGINT

smallint

SQLSMALLINT

tinyint

SQLTINYINT

money

SQLMONEY

smallmoney

SQLMONEY4

bit

SQLBIT

uniqueidentifier

SQLUNIQUEID

sql_variant

SQLVARIANT

timestamp

SQLBINARY

UDT (type de données défini par l'utilisateur)

SQLUDT

1 Les fichiers de données qui sont stockés au format caractère utilisent char comme type de stockage de fichier. Par conséquent, pour les fichiers de données de type caractère, SQLCHAR est le seul type de données qui apparaît dans un fichier de format.

2 Vous ne pouvez pas importer des données en bloc dans des colonnes text, ntext et image ayant des valeurs DEFAULT.

Observations supplémentaires concernant les types de stockage de fichier

Lorsque vous exportez des données en bloc à partir d'une instance de SQL Server vers un fichier de données :

  • Vous pouvez toujours spécifier char comme type de stockage de fichier.

  • Si vous entrez un type de stockage de fichier qui représente une conversion implicite non valide, bcp échoue ; par exemple, bien que vous puissiez spécifier int pour des données smallint, si vous spécifiez smallint pour des données int, des erreurs de dépassement se produisent.

  • Lorsque des types de données autres que des caractères tels que float, money, datetime ou int sont stockés avec leurs types de base de données, les données sont écrites dans le fichier de données au format natif de SQL Server.

    [!REMARQUE]

    Après que vous avez spécifié de façon interactive tous les champs dans une commande bcp, la commande vous invite à enregistrer vos réponses pour chaque champ dans un fichier de format non XML. Pour plus d'informations sur les fichiers de format non XML, consultez Description des fichiers de format non XML.