2016-08-18 192 views
0

Microsoft SQL Server 2008 R2是否從我的數據中刪除回車?這是一個例子。如果我通過電子郵件將返回的值複製並粘貼到記事本中,則所有回車符都將被刪除。我怎樣才能讓他們在?這在2014年版本中不會發生。Microsoft SQL Server 2008 R2刪除回車

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 

感謝

回答

1

「看」可以肯定的是怎麼回事,顯示文本的十六進制表示。例如: -

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時,回車和換行可能會更加明顯。

1

它不會刪除它,它只是沒有在結果窗口中顯示它。

你可以得到字符串的長度,它仍然是16個字符。或者使用子字符串來檢查。

另外:

SELECT @myinfo = mytext FROM @mytable 
PRINT @myinfo