使用.net类库向sql server中添加正则表达式

本文介绍了如何创建一个.NET类库,包含正则表达式比较方法,并将其集成到SQL Server中。遵循微软官方文档,通过设置TRUSTWORTHY选项和启用CLR,实现SQL Server中的CLR函数,最后进行测试验证其功能。
摘要由CSDN通过智能技术生成

构建类库

  1. 创建.net类库
  2. 创建正则比较方法
namespace SqlServerRegex
{
    public class RegexExtend
    {
        [Microsoft.SqlServer.Server.SqlFunction]
        public static bool IsMatch(string regex, string input)
        {
            return !string.IsNullOrEmpty(input) && new Regex(regex).IsMatch(input);
        }
    }
}
  1. rebuild项目

添加到Sql Server

--使数据库受到信任
ALTER DATABASE TestDatabase set TRUSTWORTHY ON;
--注册.net类库,unsafe 不受限制地访问资源
CREATE ASSEMBLY Regex from 'C:\Project\SqlServerRegex\bin\Debug\SqlServerRegex.dll' WITH PERMISSION_SET = UnSafe; 
--将数据库设置为可以使用clr组件
sp_configure 'clr enabled', 1;
--设置可用clr组件。别忘记运行这行进行应用
RECONFIGURE;
--创建函数
CREATE FUNCTION [dbo].[Regex.IsMatch](@Regex [nvarchar](max),@Input [nvarchar](max))
RETURNS [bit] WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [Regex].[SqlServerRegex.RegexExtend].[IsMatch];

微软官方文档

测试

SELECT *
 FROM dbo.TestRegex
where dbo.[Regex.IsMatch]('\d+',code)!=0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值