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
由于
答案 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时,回车和换行可能更明显。