MSSQL 程序集使用方法

1.C# 写一个程序

1.1新建一个项目【类库【.Net FrameWork】

1.2编写代码

删除

namespace ApiSQLClass

{

}

代码如下:【具体调用API模式根据具体编写】

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SqlServer.Server;


    public class ApiSQLHelper
    { 
    [SqlFunction]
    public static string CallAPI(string apiMethod, string apiURL, string apiPMS)
    {
        return apiPMS;
    }
    }

2.数据库设定

2.1数据库设定

sql 复制代码
Use master 
exec sp_configure 'show advanced options', '1';
go

reconfigure;
go

exec sp_configure 'clr enabled', '1'
go

reconfigure;
exec sp_configure 'show advanced options', '1';
go 
Use [DB] --DB 具体为需要使用的数据库

ALTER DATABASE [DB]  SET TRUSTWORTHY on;
go

2.2程序集设定

1.选择需要设定数据库后按下步骤进行

3.SQL使用

3.1函数代码

sql 复制代码
create function [dbo].[fn_CallAPI]
(
	@apiMethod nvarchar(max)		--Post/Get
	, @apiURL nvarchar(max)		--API地址		
	 
	, @apiPMS nvarchar(max)		--JSON格式的参数
)
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [ApiSQLClass].[ApiSQLHelper].[CallAPI]
 

3.2测试效果

sql 复制代码
declare @apiPMS nvarchar(max);
--set @pms='{"Username":"Test","Password":"Test"}'   --参数
set @apiPMS = (select 'admin' as 'User_id', '123' as 'PSW' for json path, without_array_wrapper);
select [dbo].[fn_CallAPI]( 'POST', 'apits',  @apiPMS)
 

结果集:{"User_id":"admin","PSW":"123"}

4.总结

4.1:需要删除:namespace,否则在创建函数时候报错

4.2:新建;类库【.Net FrameWork】,使用其他类型都未成功

4.3:.Net语句修改重新生成编译,需要把SQL 程序集删除重新设定才是修改后效果。

相关推荐
兔子宇航员030138 分钟前
HIVE SQL 中 NULL 值在 JOIN 和 GROUP BY 中的致命陷阱与解决方案
hive·hadoop·sql
雨辰AI2 小时前
MySQL 迁移至达梦 DM9 完整改造指南|99% SQL 零改动
java·开发语言·数据库·sql·mysql·政务
暴躁小师兄数据学院3 小时前
【AI大数据工程师特训笔记】第08讲:集合运算与超级函数
大数据·笔记·sql·ai·postgresql
雷工笔记4 小时前
SQL系列2:PostgreSQL 日期时间字段类型选择指南
数据库·sql·postgresql
逍遥德4 小时前
PostgreSQL --- JSON 函数详解
数据库·sql·postgresql·json
Irene19915 小时前
Oracle(字符集分为服务端和客户端) 和 Hive(依赖 MySQL(或 PostgreSQL)存储元数据)字符集编码格式查询,中文乱码处理
hive·sql·oracle
韶博雅5 小时前
oracle优化用到的sql
sql·oracle·ffmpeg
鸽芷咕6 小时前
金仓数据库标量子查询消除:一条SQL从32秒优化到24毫秒
数据库·sql
兔子宇航员03016 小时前
HiveSQL 中 NULL 与空字符串的区别与注意事项
数据库·数据仓库·sql
保定公民6 小时前
Oracle 层次查询(CONNECT BY)完全指南:从入门到精通
数据库·sql·oracle·达梦数据库·层次查询