基本上我的代码中有一个错误,导致条目保存到带有 HTML 的数据库中。我更正了代码,因此所有未来的条目都是正确的,但我想运行一次数据库并更正所有以前的条目。我在这个论坛上找到了这个功能来做到这一点:
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
但是我想在不创建函数的情况下执行此操作,因为我只使用了一次,并且 DBA 不希望我将任何内容放入数据库中。我怎样才能让它在 UDF 之外工作?我对SQL不太熟悉。
我的代码:
Update [OrderItem]
set [Description] = --??? Description without the HTML
from [Order] o inner join [OrderItem] oi on o.OrderID = oi.OrderID