Importer des données au format natif et caractère à partir de versions antérieures de SQL Server

 

Dans SQL Server 2016, vous pouvez utiliser la commande bcp pour importer des données au format natif et caractère à partir 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 l’utilisation par SQL Server 2016 des types de données à partir de la version antérieure spécifiée de SQL Server, et le format du fichier de données est identique à celui de 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 ServerQualificateur
SQL Server 2000-V80
SQL Server 2005-V90
SQL Server 2008-V100
SQL Server 2012-V 110

SQL Server 2005 et les 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 2005Types de données compatibles dans la version 6xTypes de données compatibles dans la version 70Types de données compatibles dans la version 80
bigintdecimaldecimal*
sql_varianttextenvarchar(4000)*
varchar(max)textetextetexte
nvarchar(max)ntextntextntext
varbinary(max)imageimageimage
XMLntextntextntext
UDT**imageimageimage
  • Ce type est pris en charge en natif.

** UDT indique un type défini par l’utilisateur.

Lorsque vous exportez des données en bloc à l’aide du commutateur –V80, les données nvarchar(max), varchar(max), varbinary(max), XML et UDT en mode natif sont stockées avec un préfixe à 4 octets, comme les données text, image et ntext, plutôt qu’avec un préfixe à 8 octets, qui s’utilise par défaut pour SQL Server 2005 et les versions ultérieures.

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 des fichiers de données au format caractère à l’aide du format par défaut ODBC pour les valeurs datetime 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.

System_CAPS_ICON_important.jpg Important


Lors de l’importation de données dans un champ smalldatetime à l’aide de bcp, vérifiez que la valeur des secondes est 00.000. Sinon, l’opération échouera. 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.

Pour utiliser des formats de données pour l'importation ou l'exportation en bloc

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)

Ajouts de la communauté

AJOUTER
Afficher: