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

Dans SQL Server 2012, 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 ou de SQL Server 2008, à l'aide du commutateur -V. Le commutateur -V entraîne l'utilisation par SQL Server 2012 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 Server

Qualificateur

SQL Server 2000 

-V 80

SQL Server 2005

-V 90

SQL Server 2008

-V 100

Interprétation des types de données apparus dans SQL Server 2005

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 de SQL Server 2005 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 à partir de SQL Server 2005 et versions ultérieures

Lorsque vous exportez des données en bloc à l'aide du commutateur –V 80 à partir de SQL Server 2005 ou de versions ultérieures, 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, et non avec un préfixe à 8 octets, qui est la valeur par défaut pour SQL Server 2005 et les 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 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.

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.

Tâches associées

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

Icône de flèche utilisée avec le lien Retour en haut[Top]

Voir aussi

Référence

Utilitaire bcp

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Types de données (Transact-SQL)

CAST et CONVERT (Transact-SQL)

Autres ressources

Compatibilité descendante du moteur de base de données SQL Server