sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo crear un archivo de texto usando un script sql con texto |

El carácter de tubería tiene un significado especial en los comandos por lotes, por lo que debe ser escapado utilizando el carácter de intercalación. Esto debería 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

Aunque esta no es realmente una buena manera de escribir datos en un archivo de texto:por lo general, SQL Server no debería tener permiso para escribir en la raíz de la unidad C:y xp_cmdshell está deshabilitado por defecto. Le sugiero que busque alternativas como sqlcmd.exe , bcp.exe o un pequeño script en su idioma preferido (PowerShell, Perl, Python, lo que sea).

Por lo general, es mucho más fácil, más seguro y más flexible consultar datos de SQL Server que extraerlos del lado del servidor. En su caso específico, parece que desea escribir un archivo delimitado y bcp.exe está destinado a ese propósito .