在ms sql中如何使用正则表达式,请给出简单示例,注释越详细越好!感激不尽

是这样的,想请问一下,在ms sql中如何使用正则表达式,请给出简单示例,注释越详细越好!感激不尽
最新回答
旧人不归

2025-03-01 08:05:36

MS SQL不支持正则表达式,可以用CLR实现。

1、 新建一个 MSSQL的数据库项目,配置到你的数据库中

2、 在数据库项目中新建一个函数库,编写如下代码:

 /// <summary>

    /// 验证是否符合正则表达式

    /// </summary>

    [SqlFunction]

    public static SqlBoolean RegexIsMatch(string input, string regex)

    {

        return new SqlBoolean(Regex.IsMatch(input, regex, RegexOptions.IgnoreCase));

    }

然后在数据库项目上点击“右键”,选择“部署”

PS:此功能需要MSSQL2005或者以上版本支持

        如果你使用的是.NET 3.5版本的话,需要在数据库服务器上安装.net framework 3.5

        目前SQLSERVER CLR 不支持.NET 4.0,所以如果你使用VS2010开发的话需要把项目版本修改成为.NET 2.0/3.5 

使用方法:

SELECT * FROM [table] WHERE dbo.RegexIsMatch([ID],'^\d+$') = 1

悦心自足

2025-03-01 07:38:21

MS SQL不支持正则表达式(不知道MS SQL2008是否支持)。
我写过一个CLR自定义函数,用来实现正则表达式匹配。