SQL Server : exportation et importation de données avec bcp

Il existe plusieurs techniques sous SQL Server pour importer et exporter des données. Les packages SSIS (SQL Server Integration Services) peuvent être parfois de redoutables usines à gaz semées d’embûches concernant la gestion des droits. Passons.

bcp pour importer et exporter les données

bcp signifie Bulk Copy Program, un programme de copie de données en bloc. C’est une commande d’une grande complexité, avec des tas de commutateurs et donc de paramètres. Il existe des cas simples d’utilisation.

SQL Server : exportation et importation de données avec bcp

L’export de données avec bcp

La commande suivante exporte les données de la vue vue_pubs de la base de données denis dans le fichier d:\sauve\denis\export-bcp.tsv. Les en-têtes de colonnes ne sont pas copiés dans le fichier. Le commutateur -S précise le serveur utilisé ; -T l’authentification  Windows intégrée ; -c le tabulateur en guise de séparateur de champ.

bcp.exe denis.dbo.vue_pubs out d:\sauve\denis\export-bcp.tsv -S PORTABLE -T -c

L’import de données avec bcp

La commande suivante est la commande symétrique à la précédente. Elle permet d’importer dans la table les données du fichier tsv. L’importation de fait dans la table test de la base de données denis.

bcp denis.dbo.test in d:\sauve\denis\export-bcp.tsv -S PORTABLE -T -c

Script Transact-SQL pour l’import avec bcp

La dernière version des utilitaires SQL Server qui s’exécutent en ligne de commande s’installe, par défaut, dans le dossier :

C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn

Le script ci-dessous est la transposition en Transact-SQL de la commande d’importation vue ci-dessus. Il peut être exécuté à l’intérieur d’un travail, au travers de l’agent SQL Server, ou à partir D’un plan de maintenance, planifié à l’aide de l’agent.

EXEC master.dbo.sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC master.dbo.sp_configure 'xp_cmdshell', 1;
RECONFIGURE ;
EXEC master.dbo.xp_cmdshell 'C:\"Program Files"\"Microsoft SQL Server"\"Client SDK"\ODBC\170\Tools\Binn\bcp denis.dbo.test in d:\sauve\denis\export-bcp.tsv -S PORTABLE -T -c';
GO
EXEC master.dbo.sp_configure 'xp_cmdshell', 0;
RECONFIGURE ;
EXEC master.dbo.sp_configure 'show advanced options', 0;
RECONFIGURE;
GO

Script Transact-SQL pour l’export avec bcp

Pour l’exportation

EXEC master.dbo.sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC master.dbo.sp_configure 'xp_cmdshell', 1;
RECONFIGURE ;
EXEC master.dbo.xp_cmdshell 'C:\"Program Files"\"Microsoft SQL Server"\"Client SDK"\ODBC\170\Tools\Binn\bcp.exe denis.dbo.vue_pubs out d:\sauve\denis\export-bcp.tsv -S PORTABLE -T -c';
GO
EXEC master.dbo.sp_configure 'xp_cmdshell', 0;
RECONFIGURE ;
EXEC master.dbo.sp_configure 'show advanced options', 0;
RECONFIGURE;
GO

Base de données  / Formateur SQL Server