如何在nvarchar中正确插入换行符

时间:2018-11-02 09:01:56

标签: sql sql-server tsql sql-server-2012

我需要制作一个脚本,该脚本需要一些富文本(html文本)并将其转换为普通文本。我想做的是用换行符替换所有<br>标签。我尝试使用replace函数来做到这一点:

set @rich_text_to_modify = replace(@rich_text_to_modify,'<br>', CHAR(13)+CHAR(10))


标记已删除,但未插入换行符。知道我在做什么错吗?

2 个答案:

答案 0 :(得分:12)

问题在于您在SSMS上的设置,而不是数据没有换行符。

转到:Tools -> Options -> Query Results -> SQL Server -> Results to Grid -> Retain CR/LF on copy or Save并确保已选中该选项。

答案 1 :(得分:3)

您完全确定它不起作用?我用两种不同的结果表示方式对SSMS进行了快速检查。

测试代码:

declare @rich_text_to_modify as nvarchar(200) = N'line1<BR>line2';

select @rich_text_to_modify

set @rich_text_to_modify = REPLACE ( @rich_text_to_modify , N'<BR>' , NCHAR(13)+NCHAR(10))

select @rich_text_to_modify

使用“网格结果(Ctrl + D)”

呈现结果

enter image description here

使用“文本结果(Ctrl + T)”

呈现结果

enter image description here

如您所见,您的方法运行良好。在Grid中,将结束符转换为空格。也许您用于验证的方法存在问题?