前言MSSQLSERVER提供程序集,无疑可以让编程人员更加便捷的操作数据库数据,比如c#写的函数,可以在数据库当作sql的函数使用,你想想他对不熟悉数据库的程序员来说是有多么的嗨。这么好的机制,大家当然不能错过,但是对于数据库变更迁移,可能会存在障碍与不便。所以建议大家在使用s ...
前言
MSSQLSERVER提供程序集,无疑可以让编程人员更加便捷的操作数据库数据,比如c#写的函数,可以在数据库当作sql的函数使用,你想想他对不熟悉数据库的程序员来说是有多么的嗨。这么好的机制,大家当然不能错过,但是对于数据库变更迁移,可能会存在障碍与不便。所以建议大家在使用sqlsesrver clr程序集的时候也要做个权衡,以免给数据库以后的扩张带来不便。建议大家单次数据,数据过滤,的时候使用sqlserver clr程序集。长期依赖的话,还是另外选择解决方案。
MSSQLSERVER接入c#clr程序集,使c#函数变sql函数
模拟场景:
1、数据库表数据如下
2、问题描述:AreaPoints字段的Json数据格式在c#的第三方json数据解析中是没有问题的。但是他是由多端口调用数据,调用的程序可能是java或者其它语言,那么这种不规范的Json数据格式就不能被解析,这样一来就会存在数据错误。
3、解决方案:这里我就不扯淡啦,方案一定是很多中,今天我切入主体,使用c#的类方法,使不规范的即送数据格式转换成统一规范的Json数据格式。
4、秀具体操作如下。
MSSQLSERVER接入c#clr程序集,具体操作步骤,跟着做
1、创建c#函数。解决方案下添加--->新建项目
2、添加-->新建项---Server.aspx' target='_blank'>SQL Server ---SQL CLR C#------SQL CLR C#用户定义的函数
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; } }}
alter database [master] set TRUSTWORTHY onEXEC sp_changedbowner 'sa'
原标题:MSSQLSERVER接入c# clr程序集的使用方法
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。