使用VS2013创建数据库项目实现MSSQL正则方法

实现步骤

1:创建数据库项目



2:引用相关库,简单实现代码如下


using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Text.RegularExpressions;

public partial class RegexSql
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlBoolean Regex_IsMatch(string input, string regex)
    {
        return new SqlBoolean(Regex.IsMatch(input, regex, RegexOptions.IgnoreCase));
    }

    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString Regex_Match(string input, string regex)
    {
        return new SqlString(Regex.Match(input, regex, RegexOptions.IgnoreCase).Value);
    }
}

3:在MSSQL中添加程序集




如果失败请先执行脚本

exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1'; 
 
go
  ALTER DATABASE [DB_NAME] set TRUSTWORTHY on;
go

4:创建关联函数

create function Regex_Match
( @input as nvarchar(1000), @regex as  nvarchar(100) 
)
returns nvarchar(1000)
as
  external  name Iftrue_Regex.RegexSql.Regex_Match;
go

create function Regex_IsMatch
( @input as nvarchar(1000), @regex as  nvarchar(100) 
)
returns bit
as
  external  name Iftrue_Regex.RegexSql.Regex_IsMatch;
go

5:使用函数实现正则匹配

  select dbo.Regex_IsMatch('abcde123asdf234','[b-s]+')
  select dbo.Regex_Match('abcde123asdf234','[b-s]+')

注:以上实现是基于framework3.5,在framework4.0下添加程序集会出错,同样方式可以实现很多数据库本身不便实现的功能,如:调用WEB API、WEBSERVICE等

代码下载

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值