【发布时间】:2011-12-05 15:53:02
【问题描述】:
我正在将错误信息输入到我的数据库中的 ErrorLog 表中。我有一个实用程序类来执行此操作:
ErrorHandler.Error("Something has broken!!\n\nDescription");
这很好用。但是,当我尝试访问此表时,似乎不再存在换行符。
如果我SELECT桌子:
SELECT * from ErrorLog ORDER BY ErrorDate
日志中没有换行符。这是意料之中的,因为单行行中的换行符会破坏格式。但是,如果我将数据复制出来,则换行符已经丢失,并且数据都在一行上。
当我插入换行符时,如何在查询结束时获取数据中的换行符?不知道是不是字符串在进入表格的时候去掉了换行符,还是SQL Server Management Studio中的查看器去掉了换行符。
错误消息所在列的数据类型是nvarchar(Max),如果有区别的话。
编辑:出乎意料的是,Pendri 的解决方案不起作用。
这是字符串在传递到 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 运行查询时它们没有出现在网格结果视图中吗?我相信 SSMS 会在结果中去除换行符,即使您复制和粘贴也是如此。您可以通过转换为 varbinary 并查看二进制表示中是否存在相关字符代码或编写一个小型 c# 应用程序来验证这一点。
标签: sql-server