--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. 百度IOT

    万物互联 http://www.jianshu.com/p/3d9846bf42bd 百度天工

  2. NYOJ_77 开灯问题

    题目地址 分析: 用一个数组来保存每盏灯的操作的次数.推断奇偶就可以推断灯的状态. 最后的输出格式须要注意一下空格的位置,思路就是现输出一个.剩下来的输出在前面加一个空格. 空格用_表示: 1_3_5 ...

  3. [Recompose] Refactor React Render Props to Streaming Props with RxJS and Recompose

    This lesson takes the concept of render props and migrates it over to streaming props by keeping the ...

  4. iOS使用Instrument的Leaks查找代码内存泄露

    Here are some tips for finding leaks in our project: 1. 打开Instruments调试工具控制栏, Xcode -> Open Dev T ...

  5. Install the IIS 6.0 Management Compatibility Components in Windows 7 or in Windows Vista from Control Panel

    https://technet.microsoft.com/en-us/library/bb397374(v=exchg.80).aspx Install the IIS 6.0 Management ...

  6. 7.第一次使用java连接mongodb遇到的问题

    转自:https://blog.csdn.net/u010523770/article/details/54585883 新版本的mongodb的驱动包是依赖bson.jar和mongodb_driv ...

  7. springMVC No mapping found for HTTP request with URI

    转载自:http://blog.sina.com.cn/s/blog_534f69a00101332u.html 1.问题: No mapping found for HTTP request wit ...

  8. ZOJ 3175 Number of Containers 分块

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3216 乱搞的...watashi是分块做的...但我并不知道什么是分块...大 ...

  9. UDP广播

    客户端UDP发送消息至服务器端服务器IP:192.168.1.114服务器端口:2014 客户端 Socket socket = new Socket(AddressFamily.InterNetwo ...

  10. nuxt 关闭ESlint 语法检测

    学习nuxt中在自己编写search组件的时候出现了各种类似于Expected indentation of 0 spaces but found 4的问题 上网搜是因为ESlint语法检测产生的问题 ...