2010-01-12 125 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))