Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como criar arquivo de texto usando script sql com texto |


O caractere pipe tem um significado especial em comandos em lote, portanto, deve ser escapou usando o caractere de acento circunflexo. Isso deve funcionar:
DECLARE @Text AS VARCHAR(100)
DECLARE @Cmd AS VARCHAR(100)
SET @Text = 'Hello world^| '
SET @Cmd ='echo ' +  @Text + ' > C:\AppTextFile.txt'
EXECUTE Master.dbo.xp_CmdShell  @Cmd

Embora essa não seja realmente uma boa maneira de gravar dados em um arquivo de texto:geralmente o SQL Server não deve ter permissão para gravar na raiz da unidade C:e xp_cmdshell está desabilitado por padrão. Eu sugiro que você veja alternativas como sqlcmd.exe , bcp.exe ou um pequeno script em seu idioma preferido (PowerShell, Perl, Python, qualquer que seja).

Geralmente, é muito mais fácil, seguro e flexível consultar dados do SQL Server do que empurrá-los para fora do lado do servidor. No seu caso específico, parece que você deseja escrever um arquivo delimitado e bcp.exe destina-se a esse fim .