星空网 > 软件开发 > 数据库

MSSQLSERVER接入c# clr程序集的使用方法

前言

MSSQLSERVER提供程序集,无疑可以让编程人员更加便捷的操作数据库数据,比如c#写的函数,可以在数据库当作sql的函数使用,你想想他对不熟悉数据库的程序员来说是有多么的嗨。这么好的机制,大家当然不能错过,但是对于数据库变更迁移,可能会存在障碍与不便。所以建议大家在使用sqlsesrver clr程序集的时候也要做个权衡,以免给数据库以后的扩张带来不便。建议大家单次数据,数据过滤,的时候使用sqlserver clr程序集。长期依赖的话,还是另外选择解决方案。

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

模拟场景:

1、数据库表数据如下

MSSQLSERVER接入c# clr程序集的使用方法

2、问题描述:AreaPoints字段的Json数据格式在c#的第三方json数据解析中是没有问题的。但是他是由多端口调用数据,调用的程序可能是java或者其它语言,那么这种不规范的Json数据格式就不能被解析,这样一来就会存在数据错误。

3、解决方案:这里我就不扯淡啦,方案一定是很多中,今天我切入主体,使用c#的类方法,使不规范的即送数据格式转换成统一规范的Json数据格式。

4、秀具体操作如下。

MSSQLSERVER接入c#clr程序集,具体操作步骤,跟着做

1、创建c#函数。解决方案下添加--->新建项目

MSSQLSERVER接入c# clr程序集的使用方法

2、添加-->新建项---Server.aspx' >SQL Server ---SQL CLR C#------SQL CLR C#用户定义的函数

MSSQLSERVER接入c# clr程序集的使用方法

3、创建c#函数方法,不规则json转规范的json格式

using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;public partial class UserDefinedFunctions{  [Microsoft.SqlServer.Server.SqlFunction]  //静态方法  public static SqlString ToJson1(SqlString str)  {    try    {      string json = str.ToString();      //双引号不变      if (json.Contains("\""))      {        return json;      }      //单引号换双引号      else if (json.Contains("'"))      {        return json.Replace("'", "\"");      }      //没引号的加双引号      else if (json.Contains("lng:"))      {        json = json.Replace("lat", "\"lat\"").Replace(":", ":\"").Replace(",lng", "\",\"lng\"").Replace("}", "\"}");        return json;      }      else      {        return json;      }    }    catch    {      return str;    }  }}

SQLSERVER添加Sql c# clr的2种方式展示,1、程序发布。

1、查看自己建立的c# clr 程序的属性,选中项目设置,确定目标平台与自己所要生成到的数据版本一直,不要一边是sqlserver2008一遍是sqlserver2012,这样是发布不成功的。还有选择SQLCLR,目标框架要在4.0一下,我选用的是3.5.

2、开启数据库服务器配置选项clr enabled

---开启所有服务器配置选项EXEC sp_configure N'show advanced options', N'1' RECONFIGURE WITH OVERRIDE--开启clr enabled 选项EXEC sp_configure N'clr enabled', N'1'RECONFIGURE WITH OVERRIDE --关闭所有服务器配置选项EXEC sp_configure N'show advanced options', N'0' RECONFIGURE WITH OVERRIDE
--如果存在权限问题,执行下面一段脚本

alter database [master] set TRUSTWORTHY on

EXEC sp_changedbowner 'sa'

3、发布 sql c# clr 程序集,选择要发布的服务器,与要发布到哪个数据库。确定。

MSSQLSERVER接入c# clr程序集的使用方法

4.配置发布成功

MSSQLSERVER接入c# clr程序集的使用方法

SQLSERVER添加Sql c# clr的2中方式展示,2、手动在数据库添加程序集。

1、找到自己写的sql c# clr 程序集下生成的bin文件夹下的dll文件

2、同样执行上面的脚本,开启数据库服务器配置选项clr enabled,还有给sa付权限的脚本。

3、打开数据库下的可编程性,程序集,新建程序集

MSSQLSERVER接入c# clr程序集的使用方法

4、执行下面注册函数的脚本

create function dbo.ToJson1(@patten [nvarchar](4000))RETURNS nvarchar(4000)AS ---sql c# clr 程序集文件名.类名.方法名EXTERNAL NAME BgSqlFun.UserDefinedFunctions.ToJson1

sql c# clr 自定义函数的使用

上面2种添加方式,任意一种添加都行。

declare @points varchar(4000);select @points=AreaPoints from Mp_AreaPositionDetails where id=672select dbo.ToJson1(@points)

MSSQLSERVER接入c# clr程序集的使用方法

就这样做啦一个简单的示例,希望能给一些选手,提供到帮助。thanks。




原标题:MSSQLSERVER接入c# clr程序集的使用方法

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

Katerra:https://www.ikjzd.com/w/2105
square:https://www.ikjzd.com/w/2106
Lyft:https://www.ikjzd.com/w/2107
Freightos:https://www.ikjzd.com/w/2108
Strikingly,建站工具:https://www.ikjzd.com/w/2109
亚马逊2.14事件:https://www.ikjzd.com/w/211
23点聊电商:新质生产力加速数字贸易发展 卓尔智联集团实现营收利润双增长 :https://www.kjdsnews.com/a/1836411.html
南京浦口都有什么好玩的地方 南京浦口都有什么好玩的地方推荐:https://www.vstour.cn/a/363180.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流