2017年9月15日 星期五

T-SQL 去除 html tag

先前有練習過,使用 C# 把類似 HTML 編輯器所儲存的內容,去掉 HTML Tag,但如果不想用 C# 來寫,而是直接在 SQL Server 上用 T-SQL 就直接完成,是否有這機會呢?

有的,這已經有人寫好了。

我參考了 Pinal Dave 的文章,把它主要的關鍵語法擷取下來:

CREATE FUNCTION [dbo].[clearTag]
(
 -- Add the parameters for the function here
 @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


主要是在資料庫裡新增一個函數( function),把那些雜亂的內容當作參數傳進這個函數,回傳值則是我們想要的乾淨內容。

而使用方式,則是


select [dbo].[自訂函數名稱]('xxxx html tag')

參考資料:
01.Defined Function to Strip HTML – Parse HTML – No Regular Expression

02.去除 html tag(C# 版)

2017年9月11日 星期一

SQL Server Intellisense Not Working

如果你跟我一樣,使用 SQL Server 2008 R2 搭配 Visual Studio 2010 進行開發。當您頓 Visual Studio 2010 升級了 Service Pack 1 後,有一天發現 SQL Server 2008 R2 的 intellisense 功能不見了,雖然不是什麼大 Bug,但對開發人員來說,還真的非常不方便。

原來是我先前喜孜孜地對 Visual Studio 2010 進行 Service Pack 更新,造成 Intellisense 功能發生問題,這無法透過手動去對 SQL Server Management Studio 針對環境設定而獲得改善。由於 SQL Server 2008R2 距離目前 2017 已經很多年了,所以直接讓 SQL Server 2008R2 更新了 Service Pack3 而解決 Intellisense 失效的問題。

參考: