Ø  前言

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)   默认,级别 16,状态 1,第 1 行 为程序集“SQLServerDBProject”执行 CREATE ASSEMBLY 时失败,因为该程序集是为公共语言用户时的不受支持的版本生成的。”错误,如图:

5)   该错误是因为公共语言运行库,不支持 .NET Framework 3.5 以上版本,将该项目的“目标框架”设置为 .NET Framework 3.5 即可,如图:

4.   SQL Server 调用正则表达式验证函数

1)   发布成功后,C# 函数就会生成对应的数据库标量值函数,如图:

2)   调用函数(完成正则表达式验证)

SELECT

dbo.RegexMatch('Amoi0618@126.com', '^[a-z0-9]+@\d+\.com$', 0) AS 不区分大小写,

dbo.RegexMatch('Amoi0618@126.com', '^[a-z0-9]+@\d+\.com$', 1) AS 区分大小写;

Ø  总结

1.   本文主要研究的是 C# 创建数据库标量值函数,完成正则表达式验证。

2.   其实,还有存储过程触发器等等,在有必要时应该也是很有用的。

1)   存储过程:数据库以存储过程的形式,调用 C# 方法。

2)   触发器:当数据库触发器触发时,调用 C# 方法。

3.   先到这里,后续继续研究。

SQL Server 调用 C# 方法实现正则表达式验证的更多相关文章

  1. win8安装SQL Server 2005问题解决方法

    win8安装SQL Server 2005问题解决方法 1.正常安装任一版本的SQL Server 2005(最好安装企业版). 2.安装到SqlServer服务的时候提示启动服务失败(提示重试的时候 ...

  2. SQL Server Profiler使用方法

    一.SQL Server Profiler使用方法 1.单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler,如下图:   2. ...

  3. SQL Server优化的方法

    SQL Server优化的方法<一>   查询速度慢的原因很多,常见如下几种:   1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)   2.I/O吞吐量小,形成了 ...

  4. CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏

    CASE函数   作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...

  5. ADO.NET访问SQL Server调用存储过程带回参

    1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign  use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...

  6. 远程连接sql server 数据库的方法

    今天找了半天,终于解决了如何从本地连接到远程sql server服务器的方法. 1.首先确保打开远程服务器的sql server配置管理器,确保TCP/IP协议开启 2.WebConfig的连接字符格 ...

  7. mdf, ldf文件导入到sql server 2005的方法

    mdf, ldf文件导入到sql server 2005的方法 在实际的工作中, 有很多涉及到数据库资料的备份,转移, 恢复等方面的工作, 但是并不是所有的资料都是以.bak格式存在的, 比如说, 你 ...

  8. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  9. [转]VS2013自带SQL Server 的启用方法

    本文转自:http://www.icharm.me/vs2013%E8%87%AA%E5%B8%A6%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93sql-server-exp ...

随机推荐

  1. NOIp2018 游记

    作为一名蒟蒻,对于NOIp当然是不抱什么希望.所以就只能在比赛中吸取经验咯... Day0 害怕书到用时方恨少,疯狂打板子(玩电脑) Day1 来到考场了,发现键盘空格按不起,觉得非常尴尬,然后他告诉 ...

  2. ONI无法启动: Uh oh! Unable to launch Neovim...

    问题描述 在终端中是可以打开nvim的,ONI无法正确找到位置 解决方法 修改配置文件,指定nvim的路径 终端中输入which nvim定位所在位置,这里返回的结果是/usr/local/bin/n ...

  3. django2用模板代码图标字体丢失报404 cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff

    以前开发网站,不是用php就是用c#或java写后端,跟后端繁重麻烦的代码相比,前端的html+css+JavaScript简直就简单的不算技术,相比之下,工作量也不大. 但如果用django框架,使 ...

  4. RabbitMQ入门-发布订阅模式

    兔子的Publish/Subscribe是这样的: 有个生产者P,X代表交换机,交换机绑定队列,消费者从队列中取得消息.每次有消息,先发到交换机中,然后由交换机负责发送到它已知的队列中. 生产者代码: ...

  5. codeforces 540E"Infinite Inversions"

    传送门 题意: 给你一个无限大的整数序列  p = {1, 2, 3, ...}: 有 n 次操作,每次操作交换第 ai 个数和第 aj 个数: 求序列中逆序对的个数: 题解: 考虑交换完后的序列,存 ...

  6. mysql 自定义函数与自定义存储过程的调用方法

    存储过程:call  过程名(参数) 函数:      select  函数名(参数)

  7. Java基础构造方法和this关键字整理

    构造方法 8.1构造方法介绍 构造方法的格式: 修饰符 构造方法名(参数列表) { } l  构造方法的体现: n  构造方法没有返回值类型.也不需要写返回值.因为它是为构建对象的,对象创建完,方法就 ...

  8. NoClassDefFoundError com/google/inject/Injector

    一个maven项目莫名其妙的遇上了NoClassDefFoundError com/google/inject/Injector,在maven-surefire-plugin插件中配置 了<fo ...

  9. 20165232 预备作业3 Linux安装及学习

    java第三次预作业--Linux安装及命令入门(学习记录) 通过老师给的学习基于VirtualBox虚拟机安装Ubuntu图文教程,我在自己笔记本上安装Linux操作系统,在安装过程中我遇到一些问题 ...

  10. Win7下mysql的安装

    一.简述 mysql与oracle相比小,便宜,装机量大,下载地址:https://www.mysql.com/downloads/,去找Community Edition,然后根据自己的Window ...