Microsoft SQL Server 2008 R2删除回车符

时间:2016-08-18 02:14:32

标签: sql-server tsql sql-server-2008-r2

Microsoft SQL Server 2008 R2是否从我的数据中删除了回车符?这是一个例子。如果我通过电子邮件发送返回的值或将其复制并粘贴到记事本中,则会删除所有回车符。我怎么能让他们进来?这不会发生在2014版本中。

Declare @crlf char(2) = CHAR(13) + CHAR(10)
Declare @mytable table(mytext varchar(100))
Declare @myinfo varchar(100)

SET @myinfo = 'This' + @crlf + 'is' + @crlf + 'foobar'

INSERT @mytable 
VALUES(@myinfo)

SELECT mytext 
FROM @mytable  

由于

2 个答案:

答案 0 :(得分:1)

它不会删除它,它只是不会在结果窗口中显示它。

你可以得到字符串的长度,它仍然是16个字符。或者使用子字符串进行检查。

此外:

SELECT @myinfo = mytext FROM @mytable
PRINT @myinfo

答案 1 :(得分:1)

To"见"确定发生了什么,显示文本的十六进制表示。 e.g:

Declare @crlf char(2) = CHAR(13) + CHAR(10)
Declare @mytable table(mytext varchar(100))
Declare @myinfo varchar(100)

SET @myinfo = 'This' + @crlf + 'is' + @crlf + 'foobar'

select CONVERT(varbinary(200), @myinfo)  as HexRepresentationBefore

INSERT @mytable 
VALUES(@myinfo)

SELECT mytext, CONVERT(varbinary(200), mytext)  as HexRepresentationAfter 
FROM @mytable  

这表示HexRepresentationBefore和HexRepresentationAfter:

0x546869730D0A69730D0A666F6F626172

您可以看到回车符(十六进制0D)和换行符(十六进制0A)确实在文本中。

此外,如果您正在使用SSMS:如果您正在使用"结果到网格"选项,尝试使用"结果到文本"选项。当显示varchar时,回车和换行可能更明显。