Spécifier le type de stockage de fichiers à l'aide de bcp (SQL Server)
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.
Invite bcp pour le type de stockage de fichier
Si une commande bcp interactive contient l’option in ou out sans commutateur de fichier de format ( -f) ou sans commutateur de format de données ( -n, -c, -wou -N), la commande demande le type de stockage de fichiers de chaque champ de données, comme suit :
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 des données en bloc d’une instance de Microsoft SQL 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’un instance de SQL Server vers un fichier de données au format caractère, spécifiez
char
comme type de stockage de fichier pour toutes les colonnes de la table.Pour importer des données en bloc dans un instance de SQL Server à partir d’un fichier de données, spécifiez le type de stockage de fichiers comme
char
pour les types stockés au format de caractères et, pour les données stockées au format de type de données natif, spécifiez l’un des types de stockage de fichiers, le cas échéant :type de stockage de fichier Entrer sur la ligne de commande char
char
c
[har
]varchar
c[har]
nchar
w
nvarchar
w
text
2T
[ext
]ntext2
W
binary
x
varbinary
x
image
2I
[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 entre la longueur du champ, la longueur du préfixe et les terminaisons détermine la quantité d’espace de stockage allouée dans un fichier de données pour les données non caractéristiques exportées en tant que
char
type de stockage de fichier.2 Les
ntext
types de données ,text
etimage
seront supprimés dans une version ultérieure 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ôtnvarchar(max)
,varchar(max)
etvarbinary(max)
.
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 |
---|---|
char char |
SQLCHAR |
varchar |
SQLCHAR |
nchar |
SQLNCHAR |
nvarchar |
SQLNCHAR |
text 2 |
SQLCHAR |
ntext 2 |
SQLNCHAR |
binary |
SQLBINARY |
varbinary |
SQLBINARY |
image 2 |
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 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 en bloc des données dans text
des colonnes , ntext
et image
qui ont 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 fichiers qui représente une conversion implicite non valide, bcp échoue ; par exemple, bien que vous puissiez spécifier pour les
int
smallint
données, si vous spécifiezsmallint
pour lesint
données, des erreurs de dépassement de capacité résultent.Lorsque des types de données non caractéristiques tels que
float
,money
,datetime
ouint
sont stockés en tant que types de base de données, les données sont écrites dans le fichier de données dans le format natif SQL Server.Notes
Après avoir indiqué de façon interactive tous les champs d’une commande bcp, cette dernière vous demande de sauvegarder vos réponses dans un fichier de format autre que XML pour chacun des champs fournis. Pour plus d’informations sur les fichiers de format non-XML, consultez Fichiers de format non-XML (SQL Server).
Voir aussi
Utilitaire bcp
Types de données (Transact-SQL)
Spécifier la longueur des champs au moyen de bcp (SQL Server)
Spécifier des indicateurs de fin de champ et de fin de ligne (SQL Server)
Spécifier une longueur de préfixe dans des fichiers de données à l'aide de bcp (SQL Server)