Add new comment

Transact SQL : exporter en CSV une table ou une vue

C'est simple en SQL Server, mais faites-vous l'attention sur les droits de la connexion utilisée.

Activez l'option "xp_cmdshell" si necessaire

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

Créez et lancez la procédure stockée

USE AdventureWorks
GO
CREATE PROCEDURE dbo.export_to_csv
AS
BEGIN
  SET NOCOUNT ON;
  DECLARE @file_name varchar(1000);
  SET @file_name = 'c:\temp\'; -- Le compte SQL Server doit avoir les droits pour écrire ici
  SET @file_name = @file_name + 
    convert(varchar(16), convert(int, (rand() * 1000000000))) + '.csv';
  DECLARE @sql varchar(8000);
  SET @sql = 'bcp AdventureWorks.Person.Contact out "' + 
    @file_name + '" -c -t; -T -S' + @@servername;
  EXEC xp_cmdshell @sql, no_output;
END
GO