Importer des données au format natif et caractère à partir de versions antérieures de SQL Server
Dans SQL Server 2014, vous pouvez utiliser bcp pour importer des données au format natif et au format de caractères de SQL Server 2000, SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 ou SQL Server 2012 à l’aide du commutateur -V. Le commutateur -V entraîne SQL Server 2014 à utiliser les types de données de la version antérieure spécifiée de SQL Server, et le format de fichier de données est identique au format dans cette version antérieure.
Pour spécifier une version antérieure de SQL Server pour un fichier de données, utilisez le commutateur -V avec l’un des qualificateurs suivants :
Version de SQL Server | Qualificateur |
---|---|
SQL Server 2000 | -V80 |
SQL Server 2005 | -V90 |
SQL Server 2008 | -V100 |
SQL Server 2012 | -V 110 |
Interprétation des types de données
SQL Server 2005 et versions ultérieures prennent en charge certains nouveaux types. Pour importer un nouveau type de données dans une version de SQL Server antérieure, ce type de données doit être stocké dans un format lisible par les anciens clients bcp . Le tableau ci-dessous résume le mode de conversion des nouveaux types de données pour assurer leur compatibilité avec les versions précédentes de SQL Server.
Nouveaux types de données dans SQL Server 2005 | Types de données compatibles dans la version 6x | Types de données compatibles dans la version 70 | Types de données compatibles dans la version 80 |
---|---|---|---|
bigint |
decimal |
decimal |
* |
sql_variant |
text |
nvarchar(4000) |
* |
varchar(max) |
text |
text |
text |
nvarchar(max) |
ntext |
ntext |
ntext |
varbinary(max) |
image |
image |
image |
XML | ntext |
ntext |
ntext |
UDT1 | image |
image |
image |
* Ce type est pris en charge en natif.
1 UDT indique un type défini par l’utilisateur.
Exportation à l’aide de -V 80
Lorsque vous exportez des données en bloc à l’aide du commutateur -V80, nvarchar(max)
, varchar(max)
varbinary(max)
XML et UDT en mode natif sont stockées avec un préfixe de 4 octets, comme text
, image
et des données, plutôt ntext
qu’avec un préfixe de 8 octets, qui est la valeur par défaut pour SQL Server 2005 et versions ultérieures.
Copie de valeurs de date
bcp utilise l’API de copie en bloc ODBC. Par conséquent, pour importer des valeurs de date dans SQL Server, bcp utilise le format de date ODBC (yyyy-mm-dd hh:mm:ss[ .f... ]).
La commande bcp exporte les fichiers de données au format caractère à l’aide du format par défaut ODBC pour datetime
les valeurs et smalldatetime
. Par exemple, une colonne datetime
contenant la date 12 Aug 1998
est copiée en bloc dans un fichier de données en tant que chaîne de caractères 1998-08-12 00:00:00.000
.
Important
Lorsque vous importez des données dans un smalldatetime
champ à l’aide de bcp, assurez-vous que la valeur en secondes est 00,000 ; sinon, l’opération échoue. Le type de données smalldatetime
ne conserve que les valeurs à la minute la plus proche. BULK INSERT et INSERT ... SELECT * FROM OPENROWSET(BULK...) n'échoueront pas dans ce cas, mais tronqueront la valeur des secondes.
Tâches associées
Pour utiliser des formats de données pour l'importation ou l'exportation en bloc
Utiliser le format caractère pour importer ou exporter des données (SQL Server)
Utiliser le format natif pour importer ou exporter des données (SQL Server)
Utiliser le format caractère Unicode pour importer ou exporter des données (SQL Server)
Utiliser le format natif Unicode pour importer ou exporter des données (SQL Server)
Voir aussi
Utilitaire bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
Types de données (Transact-SQL)
Compatibilité descendante du moteur de base de données SQL Server
CAST et CONVERT (Transact-SQL)