参考文章

MSSQLSERVER接入c#clr程序集,使c#函数变sql函数

正则表达式30分钟入门教程

SQL中采用Newtonsoft.Json处理json字符串

操作步骤

1.新建项目->已安装->模版->其它语言->SQL Server

2.项目右键->添加->新建项->SQL CLR C#->SQL CLR C# 用户定义的函数

3.C# 的函数方法

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Text.RegularExpressions; public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction]
public static SqlBoolean IsMatch(string Input, string Pattern)
{
return new SqlBoolean(Regex.IsMatch(Input, Pattern));
} [Microsoft.SqlServer.Server.SqlFunction]
public static SqlString RegexReplace(string Input, string Pattern, string Replacement)
{
return new SqlString(Regex.Replace(Input, Pattern, Replacement));
}
}

4.程序发布(方法一):

a.程序发布前调整一下项目属性中目标平台和目标框架,我这里用的是SQL Server 2008 框架为.Net 3.5

b.开启数据库服务器配置选项clr enabled

---开启所有服务器配置选项
EXEC sp_configure N'show advanced options', N''
RECONFIGURE WITH OVERRIDE
--开启clr enabled 选项
EXEC sp_configure N'clr enabled', N''
RECONFIGURE WITH OVERRIDE
--关闭所有服务器配置选项
EXEC sp_configure N'show advanced options', N''
RECONFIGURE WITH OVERRIDE
--如果存在权限问题,执行下面一段脚本
alter database [master] set TRUSTWORTHY on
EXEC sp_changedbowner 'sa'

c.项目->右键->发布->编辑->选择发布数据库

d.点击发布

4.程序发布(方法二):

前两步骤与方法一相同

a.选中数据库->可编程性->程序集->新建程序集

b.执行注册函数的脚本(在发布时选择生成脚本)

GO
CREATE FUNCTION [dbo].[IsMatch]
(@Input NVARCHAR (4000), @Pattern NVARCHAR (4000))
RETURNS BIT
AS
EXTERNAL NAME [Regex].[UserDefinedFunctions].[IsMatch] GO
CREATE FUNCTION [dbo].[RegexReplace]
(@Input NVARCHAR (4000), @Pattern NVARCHAR (4000), @Replacement NVARCHAR (4000))
RETURNS NVARCHAR (4000)
AS
EXTERNAL NAME [Regex].[UserDefinedFunctions].[RegexReplace]

5.测试使用

select dbo.IsMatch('123abc','\d{2}') --查找连续2位数字
select dbo.IsMatch('123abc','\d{4}') --查找连续4位数字
select dbo.RegexReplace('123abc','\d{3}','ABC') --替换连续3位数字为ABC

结果:

SQL Server 2008 通过C# CLR 使用正则表达式的更多相关文章

  1. SQL点滴15—在SQL Server 2008中调用C#程序

    原文:SQL点滴15-在SQL Server 2008中调用C#程序 T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可 ...

  2. 在SQL Server 2008中调用.net,dll

    原文:在SQL Server 2008中调用.net,dll T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQ ...

  3. SQL Server 2008 R2 升级到 Service Pack 3后Report Builder启动不了

    一同事将测试服务器从SQL Server 2008 R2 SP2升级到了SQL Server 2008 R2 SP3后发现Report Service的报表编辑时启动不了Report Builder, ...

  4. SQL Server 2008连接字符串写法大全

    一..NET Framework Data Provider for SQL Server 类型:.NET Framework类库使用:System.Data.SqlClient.SqlConnect ...

  5. SQL Server 2008 R2——T-SQL 存储过程 返回表

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

  6. SQL SERVER 2008向ORACLE 11G迁移示例

    来源于:http://www.cnblogs.com/hiizsk/ 由SQL SERVER 2008向ORACLE 11G迁移过程记录之一-表 使用Oracle Sql Developer将SQL ...

  7. SQL Server 2008连接字符串写法大全{转}

    一..NET Framework Data Provider for SQL Server 类型:.NET Framework类库使用:System.Data.SqlClient.SqlConnect ...

  8. SQL Server 2008中的hierarchyid

    这也是SQL Server 2008的一个重要新增特性.主要解决的问题是拥有层次关系的表格.例如我们日常生活中用到最多的组织结构图.我们一般会用一个Region表保存区域数据,而每个区域则又可能会有相 ...

  9. SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

    转自:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Micros ...

随机推荐

  1. (转)SQLServer_十步优化SQL Server中的数据访问 三

    原文地址:http://tech.it168.com/a2009/1125/814/000000814758_all.shtml 第六步:应用高级索引 实施计算列并在这些列上创建索引 你可能曾经写过从 ...

  2. Skyline TerraExplorer 7.0- 扩展信息树

    Skyline TerraExplorer V7增加了一个扩展信息树的控件TEInformationWindowEx.  该控件能够将TE3DWindowEx窗口里面的对象显示为信息树的方式.TEIn ...

  3. Vue 子组件调用父组件方法

    父组件内容: <template> <div> <info-wnd ref="infoWnd" @parentClick="wndClick ...

  4. python类特列方法使用

    class Rgc(object): def __new__(cls, *args, **kwargs): print('在类通过__new__方法实例化一个对象') return super(Rgc ...

  5. [Vue warn]: Duplicate keys detected: '1'. This may cause an update error

    今天遇到这个问题,遇到这个问题多数因为:key值的问题 第一种情况(key重复) <div class="name-list" v-for="(item,index ...

  6. Postman 设置全局变量和环境变量设置(之 图形界面设置变量)

    在Postman中有两种方法添加变量:1.图形界面操作添加   2.执行代码添加 1.图形界面操作添加,点击右上角齿轮按钮手动添加所需测试环境:   2.点击右上角的小眼睛可以编辑.添加“全局变量”和 ...

  7. 根据URL地址获取对应的HTML,根据对应的URL下载图片

    核心代码(获取HTML): #region 根据URL地址获取信息GET public static String GetResult(string url) { return GetResult(u ...

  8. oracle填坑之PLSQL中文显示为问号

    刚入坑oracle就遇到个坑. 坑描述: 系统:Windows7 oracle:同时安装,11g和12c(安装顺序,先装的12c然后装的11g) 坑:开始安装的12c用SQL Developer使用本 ...

  9. hadoop单机模式安装流程

    这里的安装是在Linux系统上安装的 参考博客 : https://blog.csdn.net/cafebar123/article/details/73500014 https://blog.csd ...

  10. Btrace官方教程-中文版

    教程英文版来源:https://github.com/btraceio/btrace/blob/master/docs/usersguide.html BTrace用户指南 BTrace是一种安全,动 ...