更新列以删除html标记

时间:2013-12-04 09:22:48

标签: sql sql-server

我正在将我的数据库从一个版本的应用程序升级到另一个版本。在这种情况下,后一版本不存储html标签,但前一版本存储。 我有sql函数从一个字符串中删除html标记:Best way to strip html tags from a string in sql server?

但是我需要更新一列的所有行。任何人都可以建议一些脚本,以便更新所有行删除html标签

1 个答案:

答案 0 :(得分:0)

UDF代表“用户定义的函数” - 除非您没有使用名称“udf_StripHTML”定义函数,否则这根本不起作用。我想你参考这个函数:

CREATE FUNCTION [dbo].[udf_StripHTML]
(@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
WHILE @Start > 0
AND @End > 0
AND @Length > 0
BEGIN
SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'')
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
END
RETURN LTRIM(RTRIM(@HTMLText))
END
GO

测试此功能:

SELECT dbo.udf_StripHTML('<b>UDF at stackoverflow.com </b><br><br><a href="http://www.stackoverflow.com">Stackoverflow.com</a>')

结果集:

stackoverflow.com上的UDF Stackoverflow.com

此功能由Pinal Dave设立 - see here

希望这有帮助。