sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man skapar en textfil med sql-skript med text |

Pipetecknet har en speciell betydelse i batchkommandon, så det måste vara rymde med hjälp av caret-karaktären. Detta borde fungera:

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

Även om detta verkligen inte är ett bra sätt att skriva data till en textfil:vanligtvis ska SQL Server inte ha behörighet att skriva till roten av C:-enheten och xp_cmdshell är inaktiverat som standard. Jag föreslår att du tittar på alternativ som sqlcmd.exe , bcp.exe eller ett litet skript på ditt föredragna språk (PowerShell, Perl, Python, vad som helst).

Det är i allmänhet mycket enklare, säkrare och mer flexibelt att söka efter data från SQL Server än att trycka ut det från serversidan. I ditt specifika fall ser det ut som att du vill skriva ut en avgränsad fil och bcp.exe är avsedd för det ändamålet .



  1. C#/SQL:säkerhetskopiera och återställa genom att kopiera och ersätta databasfiler?

  2. Oracle Index och typer av index i Oracle med exempel

  3. Hanterar EXCEPTION och returnerar resultat från funktion

  4. Varför är mitt bordsstorlek mer än 4x större än förväntat? (rader*byte/rad)