一、引用dll文件
create assembly text --创建名称 from 'D:\odoo\demo\bin\Debug\text.dll' --dll文件路径 with permission_set = UNSAFE
注:执行时可能会出现程序集‘xxx’未获授权的错误,可以设置数据库的trustworthy 为 on 解决:
alter database [database] set trustworthy on
二、创建函数
create FUNCTION [dbo].[test1]( ) --该函数的名字 RETURNS nvarchar(200) --返回的类型 WITH EXECUTE AS CALLER AS EXTERNAL NAME [ODS].[ODS.ods].[test] --[ODS]是指你程序集中dll的名称, [ODS.ods]ODS是指dll文件中那个类的命名空间,ods是指dll文件中那个类的类名,[test]是指dll文件中那个被调用的静态方法 GO
三、调用函数
print dbo.test1()
注:如果出现禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项的错误,可执行以下命令解决:
#执行sql server的CLR支持 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
四、执行exe程序
EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO ----xp_cmdshell { 'command_string' } [ , no_output ] --执行 EXEC xp_cmdshell 'D:\odoo\demo1\bin\Debug\test.exe'
学习文章:https://www.cnblogs.com/xiaozhuxing/p/11172181.html
https://www.cnblogs.com/WEI-CONG/p/4324715.html?utm_source=tuicool&utm_medium=referral
https://blog.csdn.net/karen586/article/details/78064529
https://www.cnblogs.com/ling-cun/p/9114971.html