--1.新建SqlServerExt项目,编写 C# 方法生成 SqlServerExt.dll 文件

using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

using System.Text.RegularExpressions;

using Microsoft.SqlServer.Server;





namespace Ext

{

    public static partial class DataBase

    {

        /// <summary>

        /// 正則表達式

        /// </summary>

        /// <param name="input">输入字符</param>

        /// <param name="pattern">正則表達式</param>

        /// <returns></returns>

        [Microsoft.SqlServer.Server.SqlFunction]

        public static SqlBoolean Regex(SqlChars input, SqlString pattern)

        {

            try

            {

                Regex regex = new Regex(pattern.Value);

                return new SqlBoolean(regex.IsMatch(new string(input.Value)));

            }

            catch

            {

                return new SqlBoolean(false);

            }

        }

    }

}





--2.在SqlServer 中注冊程序集

CREATE ASSEMBLY Udf 

FROM 'D:\.......\SqlServerExt.dll'

WITH PERMISSION_SET = SAFE;

--2.1 删除已注冊的程序集 Udf

--DROP ASSEMBLY Udf;





--3.创建一个sql 函数

CREATE FUNCTION Regex

(

@input NVARCHAR(4000) ,

@pattern nvarchar(4000)



RETURNS bit

AS

EXTERNAL NAME [Udf].[Ext.DataBase].[Regex] ;

--EXTERNAL NAME [Sql中程序集名].[C#命名空间.C#类名].[C#方法名]



--3.1 删除函数

--DROP FUNCTION Regex;





--4.測试正则

--4.1 匹配全部数字

select dbo.regex('123asd123','^\d+$');

select dbo.regex('123000123','^\d+$');

--4.2 查询mytable表中mycol字段中,包括全部数字的记录

select top 10 * from [mytable] where dbo.regex([mycol],'^\d+$');









--5.运行 自己定义函数异常时

--消息 6263。级别 16,状态 1,第 2 行

--禁止在 .NET Framework 中运行用户代码。启用 "clr enabled" 配置选项。

/*

--出现例如以下提示时,运行下方代码

--消息 6263,级别 16,状态 1,第 2 行

--禁止在 .NET Framework 中运行用户代码。启用 "clr enabled" 配置选项。





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

*/

sqlserver 运行正則表達式,调用c# 函数、代码的更多相关文章

  1. Java正則表達式语法

    Java正則表達式语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.比如,"n"匹配字符"n"."\n"匹配换行 ...

  2. javascript——正則表達式

    正則表達式(RegExp对象):主要用于表单验证 1.创建正則表達式: (1).var ret = /pattern/; pattern是内容.能够是正則表達式的内容,能够是字符或是其它的内容 (2) ...

  3. PHP第九课 正則表達式在PHP中的使用

    今天内容 1.正則表達式 2.数学函数 3.日期函数 4.错误处理 正則表達式: 1.模式修正符 2.五个经常使用函数 另外一个正則表達式的站点:http://www.jb51.net/tools/z ...

  4. javascript 正則表達式补充

    定义 JavaScript种正則表達式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...

  5. 黑马程序猿————Java基础日常笔记---反射与正則表達式

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序猿----Java基础日常笔记---反射与正則表達式 1.1反射 反射的理解和作用: 首 ...

  6. 【C/C++学院】0904-boost智能指针/boost多线程锁定/哈希库/正則表達式

    boost_array_bind_fun_ref Array.cpp #include<boost/array.hpp> #include <iostream> #includ ...

  7. Python——正則表達式(2)

    本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...

  8. Python正則表達式:怎样使用正則表達式

    正則表達式(简称RE)本质上能够看作一个小的.高度专业化的编程语言,在Python中能够通过re模块使用它.使用正則表達式,你须要为想要匹配的字符串集合指定一套规则,字符串集合能够包括英文句子.e-m ...

  9. JavaScript使用正則表達式

    2.0 简单介绍 正則表達式是能够用来查找与给定模式匹配的文本的搜索模式.比如,在上一章中,我们在一个较长的字符串中查找子字符串Cookbook: var testValue = "This ...

随机推荐

  1. JDBC连接ORACLE无法登陆java.sql.SQLException: ORA-01017: invalid username/password; logon denied

    当用jdbc连接Oracle数据库的时候 private Connection getConnection() throws SQLException { OracleDataSource ods = ...

  2. TI C66x DSP 四种内存保护问题 -之- 外设訪问corePac内部资源时的内存保护问题

    外设訪问corePac内部资源(L1,L2)时的内存保护等问题请參考以下两个blog.已经叙述的非常具体. "TI C66x DSP 系统events及其应用 - 2"," ...

  3. 习题(3-3) 计算(a+b)*c的值

    题目 - 习题(3-3) 计算(a+b)*c的值   来源 计算概论B 2010 描写叙述 计算表达式(a+b)*c的值,当中a, b, c均为整数,且a,b,c的值介于-10000和10000之间( ...

  4. 【Linux】JDK+Eclipse 搭建C/C++开发环境

    注:本文所提供的参考示例是在CentOS Linux环境下的安装,不保证适用于其他版本的Linux系统. ·    安装前的注意事项 编译源代码是需要对应的代码编译工具的,本文中安装的Eclipse只 ...

  5. Sqoop 数据导入导出实践

    Sqoop是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:mysql,oracle,等)中的数据导入到hadoop的HDFS中,也可以将HDFS的数据导入到 ...

  6. 线程框架Executor的用法举例

    java5线程框架Executor的用法举例 Executor 是 java5 下的一个多任务并发执行框架(Doug Lea),可以建立一个类似数据库连接池的线程池来执行任务.这个框架主要由三个接口和 ...

  7. 分享js中 pageY = clientY + document.body.scrollTop 之间的关系

    //这里没有考虑兼容ie模式下 兼容一般主流浏览器 var $1 = document.getElementById('main') $1.onclick = function(e){ console ...

  8. CSS3侧滑导航

    <!DOCTYPE> <html> <head> <meta charset="utf-8" /> <meta name=&q ...

  9. BZOJ3294: [Cqoi2011]放棋子(计数Dp,组合数学)

    题目链接 解题思路: 发现一个性质,如果考虑一个合法的方案可以将行和列都压到一起,也就是说,在占用行数和列数一定的情况下,行列互换是不会影响答案的,那么考虑使用如下方程: $f[i][j][k]$为占 ...

  10. BZOJ3645: Maze(FFT多项式快速幂)

    Description 众维拉先后在中土大陆上创造了精灵.人类以及矮人,其中矮人是生性喜好常年居住在地下的洞穴的存在,他们挖掘矿物甚至宝石,甚至用他们的勤劳勇敢智慧在地底下创造出了辉煌宏大的宫殿,错综 ...