2010-01-12 126 views
7

我在MS SQL Server的表中有一堆varchar(255)和varchar(max)字段。将“ n”转换为SQL Server中的实际换行符

这些通常是格式化的消息(电子邮件和其他)。大多数字段都有实际的字符“\ n”,但实际上需要一个换行符。我不需要担心未来的新数据,但不知道如何修复当前数据库中的内容。

我大多是程序员,而不是SQL /数据库的人,所以任何关于如何解决这个问题的方法或资源让我开始,将不胜感激。

回答

12

这应该做的伎俩

UPDATE 
    <tablename> 
SET 
    <fieldname> = replace(<fieldname>,'\n',char(13)+char(10)), 
    <otherfieldname> = replace(<otherfieldname>,'\n',char(13)+char(10)) 
+0

加比,完美的。谢谢! – Kylar 2010-01-12 02:35:33

2

此:

print replace('Line 1\nLine 2','\n',char(13)) 

会产生:

Line 1 
Line 2 
1

我相信你正在寻找CHAR(13)...

select 'hi' + char(13) + 'there' 

您可以在SELECT语句替换\ n ...

select replace('hi\nthere', '\n', char(13)) 

或者你也可以做一个更新...

update table set str = replace(str, '\n', char(13))