2016-04-08 67 views
1

我试图创建一个包含换行符的文本文件。我有这样的代码:使用SQL脚本,创建一个带有换行符的文本文件

DECLARE @Text AS VARCHAR(100) 
DECLARE @Cmd AS VARCHAR(100) 

SET @Text = 'This is my text line 1 (supposed to be new line character) This is line2' 
SET @Cmd ='echo ' + @Text + ' > C:\FileStore\test.txt' 

EXECUTE Master.dbo.xp_CmdShell @Cmd, NO_OUTPUT 

我应该用什么来对文本文件中的换行符,使输出应该是

This is my text line 1 
This is line2 

UPDATE: 我已经试过这是每建议

SET @Text = 'This is my text line 1' + char(13) + char(10)+ 'This is line2' 

但有了这个,就不会再创建txt文件

由于

+0

使用了标记dbms,该代码远离ANSI SQL兼容。 – jarlh

+0

根据使用的语法重新标记为“sql-server”。 –

回答

2

Windows使用回车换行-feed序列来表示新行,字符代码13 & 10这样:

select 'hello' + char(13) + char(10) + 'world' 

(注意不是在SSMS网格视图,你只会看到一个双空格)

它不会产生txt文件更多

啊,那不是支持新线的echo命令行。

你可以

echo This is my text line 1 > "C:\FileStore\test.txt" & echo This is line2 >> "C:\FileStore\test.txt" 

或者发现不涉及命令行的方式不同。

+0

嗨感谢您的响应,当我尝试这个,它不会创建任何txt文件更多。 – user6007010

3

使用CHAR(13),以用于回车加换行(用于Windows)输出一个回车,或CHAR(13)+ CHAR(10)

+0

感谢您的回应,我试过,因为你建议,但是当我运行脚本,它不会创建txt文件 – user6007010

相关问题