2016-08-18 5 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

は何が起こっているかを確認するために、テキストの16進表現を表示し、「見る」こと。

0x546869730D0A69730D0A666F6F626172

あなたは、キャリッジリターン(16進の0D)とラインフィード(16進数の0A)は、テキストに実際にある見ることができます。例えば:

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の両方を示しています。

また、SSMSを使用している場合:「結果をグリッド」オプションを使用する場合は、「結果をテキストにする」オプションを使用してみてください。 varcharが表示されているとき、キャリッジリターンと改行がより明確になることがあります。

1

それは、それを削除しません。それだけで結果ウィンドウに表示されません。

文字列の長さは取得できますが、それでも16文字です。または、部分文字列を使用してチェックします。また

SELECT @myinfo = mytext FROM @mytable 
PRINT @myinfo 
関連する問題