在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Ø 前言 1. 在 SQL Server 中默认是不支持正则表达式验证的,如果需要某个字符串匹配一个正则表达式的验证规则,就需要额外的编写 C# 方法,并发布到 SQL Server 数据库中。 2. 很幸运,在 VS 2005 之后的版本中,都支持创建 SQL Server 数据库项目,在该项目中可以创建支持调用 C# 函数的存储过程、函数、触发器等等。 3. 本文主要学习以下几点: 1) 在 VS 2013 中创建 SQL Server 数据库项目。 2) 创建 C# 函数(完成正则表达式验证)。 3) 发布 C# 函数到 SQL Server 数据库中。 4) SQL Server 调用正则表达式验证函数(标量值函数)。
1. 在 VS 2013 中创建 SQL Server 数据库项目 1) 右键解决方案,选择添加 -> 新建项目 -> 其他语言 -> SQL Server -> SQL Server 数据库项目,如图:
2. 创建 C# 函数(完成正则表达式验证) 1) 右键 SQL Server 数据库项目,选择添加 -> 新建项 -> SQL CLR C# -> SQL CLR C# 用户定义的函数,如图: 2) 默认会创建一个名为 UserDefinedFunctions 的部分类,和一个标记为 Microsoft.SqlServer.Server.SqlFunction 特性的静态方法。类名可以更改,也可以是非部分类,但是必须是静态方法。 public partial class UserDefinedFunctions { [Microsoft.SqlServer.Server.SqlFunction] public static SqlString MySqlFunction() { // 在此处放置代码 return new SqlString (string.Empty); } } 3) 修改该方法完成正则表达式验证(也可以添加其他方法) /// <summary> /// 根据指定的字符串与正则表达式模式,验证是否匹配验证规则。 /// </summary> /// <param name="input">需要验证的字符串。</param> /// <param name="pattern">正则表达式。</param> /// <param name="ignoreCase">是否忽略大小写。</param> /// <returns></returns> [Microsoft.SqlServer.Server.SqlFunction] public static bool RegexMatch(string input, string pattern, bool ignoreCase) { bool result = false; try { if (!string.IsNullOrEmpty(input) && !string.IsNullOrEmpty(pattern)) {
|
请发表评论