SQL Server Management Studio在使用CHAR(13) + CHAR(10)时结果不一致

4

我在不同版本的SQL Server上遇到了一致性问题。以下是代码:

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

我将结果复制并粘贴到记事本中。
从 SQL Server 2008R2 显示:
“这是第一行。这是第二行。”
从 SQL Server 2014 显示:
“这是第一行。 这是第二行。”
你有什么想法如何解决这个问题?或者为什么会出现这种情况?我想实现后者。
提前感谢。

1
尝试使用 PRINT 而不是 SELECT - Felix Pamittan
6
很不幸,对于SQL Server 2008中的选择语句,此问题没有解决方案。然而,在后续版本中已经修复了这个“错误”(自2012年开始,“错误”不存在。我相信在2016年,默认情况下它已关闭,但可以通过进入选项->查询结果-> SQL Server->网格结果->保留CR / LF...进行调整)。在2012/2014中,这是不必要的,并且没有向后兼容到2008版。我在SQL 2008中尝试过,并且快速查看选择@text时输出的十六进制,发现回车符/换行符被替换为空格。 - ZLK
1
这是一个关于该问题的不同的堆栈溢出线程(来自2010年,因此可能使用SQL 2008):https://dev59.com/aHE85IYBdhLWcg3wpFKu - 我没有尝试标记答案中的任何内容,但您可能会在那里找到可行的想法。 - ZLK
@ZLK 谢谢,我想我可以使用更新的管理工具 :) - Lemniscate
1个回答

0

我在SQL Server 2008 R2(SP2)中尝试过,它没有你指定的问题。

另外一个提示是,你可以将结果更改为文本显示,而不是网格,这样你就可以轻松地查看输出,而不必复制和粘贴。

Naz


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接