sql-server – 在sql server中丢失的行中断

前端之家收集整理的这篇文章主要介绍了sql-server – 在sql server中丢失的行中断前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在错误信息输入到我的数据库中的一个ErrorLog表.我有一个实用类来做到这一点:
ErrorHandler.Error("Something has broken!!\n\nDescription");

这工作正常但是,当我尝试访问此表时,换行符不再似乎存在.

如果我选择表:

SELECT * from ErrorLog ORDER BY ErrorDate

日志中没有换行符.这是一种预期,因为一行行中的换行将会破坏格式.但是,如果我将数据复制出来,换行字符已经丢失,数据全部在一行上.

当我在换行符时,如何在查询结尾处获取数据中的换行符?我不知道字符串进入表时是否已被删除换行,或者如果sql Server Management Studio中的查看器已经删除了换行符.

放置错误消息的列的数据类型为nvarchar(Max),如果有差异.

编辑:意外的是,彭德里的解决方案没有奏效.

这是在它进入sql服务器之前的一个摘录:

POST /ipn/paymentResponse.ashx?installation=272&msgType=result HTTP/1.0\n\rContent-Length: 833\n\rContent-Type:

当我从sql Server Management Studio中的网格查看器中提取它时,这里是相同的字符串:

POST /ipn/paymentResponse.ashx?installation=272&msgType=result HTTP/1.0  Content-Length: 833  Content-Type:

断线应该是双重间隔的地方.

有任何想法吗?

解决方法

SSMS用网格输出中的空格替换换行符.如果您使用打印来打印值(将转到您的消息选项卡),那么回车将显示在那里,如果它们与数据一起存储.

例:

SELECT 'ABC' + CHAR(13) + CHAR(10) + 'DEF'
PRINT 'ABC' + CHAR(13) + CHAR(10) + 'DEF'

第一个将显示在网格中的单个单元格中,而不会中断,第二个将打印到消息窗格中.

一个快速简单的打印值的方法是选择一个变量:

DECLARE @x varchar(100);
SELECT @x = 'ABC' + CHAR(13) + CHAR(10) + 'DEF';
PRINT @x;

猜你在找的MsSQL相关文章