Với tập lệnh TSQL này, chúng tôi có thể xóa nội dung HTML miễn là có các thẻ HTML bắt đầu và kết thúc hợp lệ
Kịch bản
Tạo CHỨC NĂNG [dbo] . [udf_StripHTMLContent]
[@content VARCHAR[MAX],@tagStart varchar[55], @tagEnd varchar[55]]
TRẢ LẠI VARCHAR[MAX]
BẰNG
BẮT ĐẦU
KHAI BÁO @start INT= 1
KHAI BÁO @end INT= 1
KHAI BÁO @len INT= 1
WHILE @start > 0 AND @end > 0 AND @len > 0
BẮT ĐẦU
SET @start = CHARINDEX[@tagStart,@content]
SET @end = [len[@tagEnd]-1] + CHARINDEX[@tagEnd,@content,CHARINDEX[@tagStart,@content]]
SET @len = [@end - @start] + 1
NẾU @start > 0 AND @end > 0 AND @len > 0 and [@len > 1 and @end > len[@tagEnd]]
BẮT ĐẦU
SET @content = STUFF[@content,@start,@len,'']
END
KHÔNG
BẮT ĐẦU
nghỉ;
END
CHẤM DỨT
RETURN REPLACE[ @content ,' ',' ']
Tập lệnh này phân tích nội dung tìm kiếm thẻ bắt đầu và thẻ kết thúc. Nó thay thế tất cả nội dung chứa trong các thẻ đó. Nó tiếp tục phân tích cú pháp chuỗi cho đến khi không tìm thấy thẻ phù hợp nữa hoặc đến cuối chuỗi
Ví dụ
Sử dụng các ví dụ sau để xem chức năng này có thể được sử dụng như thế nào. Một vài ví dụ đầu tiên chỉ phân tích một chuỗi. Ví dụ cuối cùng thực hiện cập nhật SQL nội tuyến để xóa các thẻ HTML khỏi một số bản ghi hàng tồn kho
khai báo @html varchar[tối đa], @start varchar[55], @end varchar[55]
set @start = '
set @end = '
set @html = 'Mục này có nhiều tính năng''''''''''''''''''''''''''''''''''''''''
chọn @html làm trước
set @html = dbo . udf_StripHTMLContent [ @html ,@start, @end]
chọn @html làm sau
set @start = '
set @end = ''
set @html = 'Mục này có nhiều tính năng'''''''''''''''''''''''''''''''''''''''''''''''
chọn @html làm trước
set @html = dbo . udf_StripHTMLContent [ @html ,@start, @end]
chọn @html làm sau
--TABLE CẬP NHẬT GỌI
cập nhật a đặt Chi tiết mặt hàng = dbo. udf_StripHTMLContent [ Chi tiết mặt hàng , @ , @end]
từ Khoảng không quảng cáo . Mục a
...
Chức năng này cũng có thể được sử dụng để loại bỏ nội dung khớp với một mẫu bắt đầu và kết thúc cụ thể