Consigo exportar os resultados do procedimento armazenado como CSV para a unidade local no SQL Server, mas estou com dificuldade para exportar os resultados para um servidor externo (ou local de unidade compartilhada).
Só consigo usar BCP
o comando do prompt de comando, mas ele tem funcionalidade limitada. Além disso, o BCP
comando exporta apenas ASCII. Quero exportar como formato UTF-8 BOM.
Implementei os seguintes métodos para exportar os resultados como csv:
O sp_configure 'xp_cmdshell'
já está ligado
Use
BCP
o comando do SQL Server:declare @sql varchar(8000) select @sql = 'BCP "EXEC [dbName].[dbo].[StoredProcedureName] @AreaID=NULL" queryout "\\serverlocation\Test\FileExport_Test_1.CSV"-T -S SourceServerName -c -t,' exec master..xp_cmdshell @sql
Este comando está exportando csv ao exportar para o local do servidor
Recebo este erro quando executo o comando acima:
Erro = [Microsoft][SQL Server Native Client 11.0]Não é possível abrir o arquivo de dados do host BCP
Use o comando BCP no prompt de comando.
C:\Windows\System32>BCP "EXEC [dbName].[dbo].[StoredProcedureName] @AreaID=NULL" queryout "\\serverlocation\Test\FileExport_Test_1.CSV"-T -S SourceServerName -c -t
O arquivo é exportado para o local do servidor externo, mas não quero usar esse método porque quero usar um nome de arquivo dinâmico e passar valores de parâmetros dinâmicos para o procedimento armazenado.
Usar o Powershell:
PS SQLSERVER:\> $filename = "\\serverlocation\Test\FileExport_Test_1" Invoke-Sqlcmd -Query "EXEC [dbName].[dbo].[StoredProcedureName] @AreaID=NULL" -ServerInstance "SourceServerName" | Export-Csv -Path "$filename.csv" -NoTypeInformation
Recebo o seguinte erro:
Export-Csv: Não é possível abrir o arquivo porque o provedor atual (Microsoft.SqlServer.Management.PSProvider\SqlServer) não pode abrir um arquivo.
Na linha:3 char:1- Export-Csv -Caminho "$filename.csv" -NoTypeInformation
-
- CategoryInfo: Argumento inválido: (:) [Export-Csv], PSInvalidOperationException
- FullyQualifiedErrorId: ReadWriteFileNotFileSystemProvider, Microsoft.PowerShell.Commands.ExportCsvCommand
Exporte o CSV do SSRS como Windows Share. Mas o CSV está adicionando aspas duplas em torno de um campo que tem aspas. Então, não é possível usar esse método para exportar CSV
Não estou muito familiarizado com o SSIS e aprender SSIS levará algum tempo e tenho que fornecer a solução em um prazo muito curto. :(
Por favor ajude