Điều này dường như hoạt động, mặc dù tôi chỉ thử nó trên một chuỗi (có phông chữ được đặt ở 2 vị trí). Tôi bắt đầu với mã tách TẤT CẢ html và sửa đổi nó để chỉ tìm kiếm và thay đổi 'font-size:*'. Tôi nghi ngờ sẽ có vấn đề nếu kích thước phông chữ là 9 hoặc nhỏ hơn (1 ký tự) và tôi đang thay đổi nó thành 10 (2 ký tự), nhưng có vẻ như nó cũng hoạt động cho điều đó.
ALTER FUNCTION [dbo].[udf_ChangeFont]
(@HTMLText VARCHAR(MAX), @FontSize VARCHAR(2))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('font-size:',@HTMLText)
SET @End = CHARINDEX(';',@HTMLText,CHARINDEX('font-size:',@HTMLText))
SET @Length = (@End - @Start) + 1
WHILE @Start > 0
AND @End > 0
AND @Length > 0
BEGIN
SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'font-size:' + @FontSize + ';')
SET @Start = CHARINDEX('font-size:',@HTMLText, @End+2)
SET @End = CHARINDEX(';',@HTMLText,CHARINDEX('font-size:',@HTMLText, @End+2))
SET @Length = (@End - @Start) + 1
END
RETURN LTRIM(RTRIM(@HTMLText))
END