2010-01-12 45 views
7

Tôi có một loạt các trường varchar (255) và varchar (max) trong một bảng trong MS SQL Server.Chuyển đổi " n" thành dòng mới thực trong SQL Server

Đây thường là các thư được định dạng (email và các thư khác). Hầu hết các trường đều có ký tự thực tế "\ n", nhưng thực sự cần ký tự dòng mới. Tôi không cần phải lo lắng về dữ liệu mới trong tương lai, nhưng không biết cách khắc phục những thứ hiện có trong DB.

Tôi chủ yếu là một lập trình viên, không phải là một anh chàng SQL/DB, vì vậy bất kỳ gợi ý về cách tiếp cận sửa lỗi này, hoặc các nguồn lực để tôi bắt đầu sẽ được đánh giá cao.

Trả lời

12

này nên làm các trick

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

Gaby, hoàn hảo. Cảm ơn! – Kylar

2

này:

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

sẽ sản xuất:

Line 1 
Line 2 
1

Tôi tin rằng bạn đang tìm kiếm char (13) ...

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

Bạn có thể thay \ n trong câu SELECT ...

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

Hoặc bạn có thể làm một bản cập nhật ...

update table set str = replace(str, '\n', char(13)) 
Các vấn đề liên quan