将URL转换为超链接

时间:2011-11-29 13:51:47

标签: sql sql-server-2008

我的数据库中有一张表,大约有3000条记录。此表中的一列包含包含URL的数据。我希望将这些URL转换为超链接,以便在将内容呈现到网页上时,它是链接到URL的锚元素。

例如,内容可能如下:

Lorem ipsum http://domain.com dolor sit amet, consectetur adipiscing elit. Cras consequat nisl vitae leo pellentesque tempus et id nunc. Vestibulum varius facilisis fringilla

我想将其更改为:

Lorem ipsum <a href='http://domain.com' target='_blank'>http://domain.com</a> dolor sit amet, consectetur adipiscing elit. Cras consequat nisl vitae leo pellentesque tempus et id nunc. Vestibulum varius facilisis fringilla

我已经尝试过:

UPDATE TableA
SET Content=REPLACE(Content, "http://domain.com", "<a href='http://domain.com' target='_blank'>http://domain.com</a>")

但这仅适用于那个确切的网址,而我需要它适用于以http://开头的任何网址

这在SQL Server中是否可行?

2 个答案:

答案 0 :(得分:2)

您可以使用您选择的编程语言,SELECT所有条目,使用正则表达式操作它们,替换每行中的URL并更新每一行。

如果要直接使用SQL Server,可以尝试在数据库服务器上实现CLR功能。以下链接说明了如何执行此操作: http://weblogs.sqlteam.com/jeffs/archive/2007/04/27/SQL-2005-Regular-Expression-Replace.aspx

然后您使用模式匹配网址,例如

^http://([a-zA-Z0-9_\-]+)([\.][a-zA-Z0-9_\-]+)+([/][a-zA-Z0-9\~\(\)_\-]*)+([\.][a-zA-Z0-9\(\)_\-]+)*$

(正则表达式有效,但可能不完整)

答案 1 :(得分:0)

是的,这是可能的。您将需要解析您的字符串并拆分您需要的部分。看看t-sql字符函数。主要是“charindex”和“substring”