Você pode exportar dados do SQL Server usando o comando BCP para o utilitário SQLCMD. No entanto, esses utilitários não oferecem suporte a nomes de arquivos dinâmicos ao exportar dados. Para gerar nomes de arquivos dinâmicos, você pode usar a solução fornecida abaixo. Nos exemplos abaixo eu anexei data / hora para arquivos exportados. Você pode modificar a lógica para atender às suas necessidades.
CREATE PROCEDURE ExportData AS SET NOCOUNT ON SELECT 'Codigo', 'Simples' GO EXEC dbo.ExportData GO
Eu selecionei um string aqui para manter as coisas simples. Você pode especificar qualquer consulta na sua procedure que produza os dados necessários para o seu arquivo.
Agora, vamos escrever o código T-SQL para exportar dados retornados a partir desta stored procedure. Aqui vamos usar SQLCMD (você também pode usar BCP) para exportar dados. Vamos executar SQLCMD usando xp_cmdshell utilizando uma query dinâmica.
DECLARE @sqlCommand VARCHAR(1000) DECLARE @filePath VARCHAR(100) DECLARE @fileName VARCHAR(100) SET @filePath = 'C:\Temp\' SET @fileName = 'MyFile_' + + CONVERT(VARCHAR, GETDATE(), 112) + '_' + CAST(DATEPART(HOUR, GETDATE()) AS VARCHAR) + '_' + CAST(DATEPART(MINUTE,GETDATE()) AS VARCHAR) + '.txt' SET @sqlCommand = 'SQLCMD -S (local) -E -d NomeBanco -q "EXEC ExportData" -o "' + @filePath + @fileName + '" -h-1' PRINT @sqlCommand EXEC master..xp_cmdshell @sqlCommand GO