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
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)
[Top]
Voir aussi
Référence
Types de données (Transact-SQL)
CAST et CONVERT (Transact-SQL)
Autres ressources
Compatibilité descendante du moteur de base de données SQL Server