国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

MSSQLSERVER添加c# clr程序集的使用方法

2024-07-21 02:46:34
字體:
來源:轉載
供稿:網友
MSSQLSERVER添加c# clr程序集的使用方法前言

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、添加-->新建項---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;        }    }}

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 onEXEC sp_changedbowner 'sa'

3、發布 sql c# clr 程序集,選擇要發布的服務器,與要發布到哪個數據庫。確定。

4.配置發布成功

SQLSERVER添加Sql c# clr的2中方式展示,2、手動在數據庫添加程序集。

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

2、同樣執行上面的腳本,開啟數據庫服務器配置選項clr enabled,還有給sa付權限的腳本。

3、打開數據庫下的可編程性,程序集,新建程序集

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)

就這樣做啦一個簡單的示例,希望能給一些選手,提供到幫助。thanks。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛曲县| 崇州市| 富裕县| 阳山县| 扶余县| 营口市| 鹤山市| 潍坊市| 商河县| 宣武区| 湄潭县| 姜堰市| 沐川县| 天镇县| 建阳市| 天峨县| 横山县| 昌图县| 德清县| 新晃| 和平区| 馆陶县| 东丰县| 邳州市| 稷山县| 潞城市| 得荣县| 聂拉木县| 思南县| 巴彦淖尔市| 慈溪市| 柳州市| 沁阳市| 张北县| 河源市| 曲水县| 蓝田县| 苍山县| 建昌县| 墨脱县| 黄浦区|