Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come creare file di testo utilizzando lo script sql con testo |

Il carattere pipe ha un significato speciale nei comandi batch, quindi deve essere escape usando il carattere accento circonflesso. Questo dovrebbe funzionare:

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

Anche se questo non è davvero un buon modo per scrivere dati in un file di testo:di solito SQL Server non dovrebbe avere l'autorizzazione per scrivere nella radice dell'unità C:e xp_cmdshell è disabilitato per impostazione predefinita. Ti suggerisco di guardare alternative come sqlcmd.exe , bcp.exe o un piccolo script nella tua lingua preferita (PowerShell, Perl, Python, qualunque cosa).

In genere è molto più semplice, più sicuro e più flessibile interrogare i dati da SQL Server piuttosto che estrarli dal lato server. Nel tuo caso specifico, sembra che tu voglia scrivere un file delimitato e bcp.exe è destinato a tale scopo .