Tímto skriptem lze exportovat data z určité tabulky do CSV souboru (pokud potřebujete exportovat určitý select, je potřeba vytvořit pomocnou tabulku a tu pak exportovat)

DECLARE 
@SQL nvarchar (MAX),
@CMD nvarchar (500),
@Path nvarchar (200)

-- vytvoření selectu do tabulky TabData
SET @SQL = 'SELECT * FROM ' + DB_NAME()  +'.dbo.TabData'

-- cesta pro uložení + název souboru
SET @Path = (SELECT 'D:\EXPORT\export-file.csv')

-- sestavení celého příkazu
SELECT @CMD =  'bcp " ' + @SQL + ' " queryout ' + @Path  + '  -c -t; -T -S  '

-- export pomocí procedury xp_cmdshell
EXEC master..xp_cmdshell @CMD

 

V následujícím příkladu uvádím možnost jak vytvořit název souboru pomocí datumu a času (např. pro 10.5.2018 v 12 hod 50 min 30 sec to bude 2018-05-10-12-50-30) 

 

DECLARE 
@SQL nvarchar (MAX),
@CMD nvarchar (500),
@Path nvarchar (200)

SET @SQL = 'SELECT * FROM ' + DB_NAME()  +'.dbo.NypTabExportFB'

SET @Path = (SELECT 'D:\EXPORT\' + REPLACE(REPLACE(convert(nvarchar(20),GetDate(),120),':','-') ,' ','-')+'.csv')

SELECT @CMD =  'bcp " ' + @SQL + ' " queryout ' + @Path  + '  -c -t; -T -S  '

EXEC master..xp_cmdshell @CMD

 

Samozřejmostí je nutnost oprávnění pro xp_cmdshell (pozor na bezpečnostní riziko)