--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. 常见bug分析

    变量类型不匹配,形参和实参类型不匹配,隐式类型转换,变量类型赋值不匹配, 工具不熟悉,导致逻辑错误,查看代码,测试驱动开发,完整的测试用例,覆盖所有分支, 变量超出范围,对于大的数据要特别注意, 工具 ...

  2. Linux-批量添加用户stu01..stu03,并设置固定的密码123456 (要求不能使用循环for while)

    最终目标: useradd stu01;echo 123456|passwd --stdin stu01 useradd stu02;echo 123456|passwd --stdin stu02 ...

  3. python 异步IO

    参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143208573 ...

  4. 题解 P2872 【[USACO07DEC]道路建设Building Roads】

    这道题真的是令人窒息,Kruskal调了贼久一直RE,最后发现数组大小稍微少了那么一点点.(也就10倍吧..) 言归正传,根据本人的分析(以及算法标签的提示),这是一道求最小生成树的题目,当然要注意已 ...

  5. Spring学习详解(1)——Spring入门详解

    一:spring的基本用法: 1,关于spring容器: spring容器是Spring的核心,该 容器负责管理spring中的java组件, ApplicationContext ctx  = ne ...

  6. 基于Java的开源CMS系统选择

    CMS概述 对于网站CMS系统而言,基于PHP的是主流,如Drupal/Joomla在各个主流虚拟机提供商上都是标准配置,也被广泛使用. 但如果你拥有Java团队,或者项目目标是想建立一个企业网使用的 ...

  7. ZooKeeper 特性

    ZooKeeper 拥有一个层次的命名空间.(like distributed)       注意:ZooKeeper 中不许使用相对路径.   一    ZooKeeper 数据模型         ...

  8. jsp静态引入(<%@ include file=""%>) 乱码问题

    在web.xml中的web-app中加入这段话: <jsp-config> <jsp-property-group> <display-name>JSPConfig ...

  9. iOS 卖票中多线程分析;

    注意:(主要一个加锁机制)

  10. VS链接数据库

    可以用VS链接数据库,并进行数据库操作.前提是安装了Sqlserver,活着连接线上的数据库服务器.