关于这个话题,我没有看到任何类似的问题,我必须为我现在正在做的事情研究这个问题。我想我应该把答案贴出来以防其他人也有同样的问题。


当前回答

我在这里找到了答案:http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

您只需连接字符串并在需要换行符的位置插入CHAR(13)。

例子:

DECLARE @text NVARCHAR(100)
SET @text = 'This is line 1.' + CHAR(13) + 'This is line 2.'
SELECT @text

这将打印出以下内容:

这是直线1。 这是直线2。

其他回答

所有这些选项都可以工作,这取决于您的情况,但如果您使用SSMS(正如在一些评论中提到的SSMS隐藏CR/ lf),您可能看不到它们中的任何一个工作。

所以,与其开车去拐弯,不如检查一下这个设置

工具|选项

我在这里找到了答案:http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

您只需连接字符串并在需要换行符的位置插入CHAR(13)。

例子:

DECLARE @text NVARCHAR(100)
SET @text = 'This is line 1.' + CHAR(13) + 'This is line 2.'
SELECT @text

这将打印出以下内容:

这是直线1。 这是直线2。

另一种方法是:

INSERT CRLF SELECT 'fox 
jumped'

也就是说,在编写查询时只需在查询中插入一个换行符,就可以将类似的换行符添加到数据库中。这在SQL server管理工作室和查询分析器中工作。我相信如果你在字符串上使用@符号,这在c#中也可以工作。

string str = @"INSERT CRLF SELECT 'fox 
    jumped'"

在SSMS中运行这个,它显示了SQL中的换行符本身是如何成为字符串值的一部分的:

PRINT 'Line 1
Line 2
Line 3'
PRINT ''

PRINT 'How long is a blank line feed?'
PRINT LEN('
')
PRINT ''

PRINT 'What are the ASCII values?'
PRINT ASCII(SUBSTRING('
',1,1))
PRINT ASCII(SUBSTRING('
',2,1))

结果: 1号线 第2行 3号线

一个空换行有多长? 2

ASCII值是什么? 13 10

或者如果你更愿意在一行中指定字符串(几乎!),你可以像这样使用REPLACE()(可选地使用CHAR(13)+CHAR(10)作为替换):

PRINT REPLACE('Line 1`Line 2`Line 3','`','
')

跟着谷歌…

从网站上获取代码:

CREATE TABLE CRLF
    (
        col1 VARCHAR(1000)
    )

INSERT CRLF SELECT 'The quick brown@'
INSERT CRLF SELECT 'fox @jumped'
INSERT CRLF SELECT '@over the '
INSERT CRLF SELECT 'log@'

SELECT col1 FROM CRLF

Returns:

col1
-----------------
The quick brown@
fox @jumped
@over the
log@

(4 row(s) affected)


UPDATE CRLF
SET col1 = REPLACE(col1, '@', CHAR(13))

看起来可以通过用CHAR(13)替换占位符来完成。

问得好,我自己从来没做过:)