前言

我使用的是sqlserver2008,是不支持正则表达式的,当然like模糊查询可以解决一些问题但,有的时候正则表达式会更加方便。

比如我要查表中某个varchar字段里含有字母的记录,或含有中文的记录,用like搞不定啊

如果能用正则表达式,那只要百度下表达式就出来了.

如何让sqlserver支持正则?

这里要应用sqlserver 公共语言运行库(CLR) 扩展功能,自定义自己的CLR程序集,扩展到sqlserver中。CLR应该程序可以用c#开发,也可以用vb开发,我们的自定义函数,过程将会以dll插件方式,集成到sqlserver中。

猜测sqlserver中的很多系统函数,过程,也是以dll的方式存在的。

虽然CLR来带了强悍的扩展功能,但也带来的一定的安全风险,某些黑客会利用sqlserver开启的CLR程序集,进行攻击,所有要不要用,需要自己衡量。

实现正则

1,首先开启sqlserver CLR 功能

exec sp_configure 'clr enabled',1     
reconfigure     
GO 

我这里用的vs2019

2,创建一个c#的类库,框架选3.5

更多推荐

sqlserver使用正则表达式