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.
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