1.在Visual Studio中新建一个名为“CLRTest”的类库项目。
public class CLRFunctions
{
public static string HelloWorld(string Name)
{
return ("Hello " + Name);
}
}
注:为了让SQL Server可以调用它,它必须要是public和static的
2.启用CLR功能
默认情况下,SQL Server中的CLR是关闭的,所以我们需要执行如下命令打开CLR:
exec sp_configure 'clr enabled',1
reconfigure
go
3.添加程序集
(1)打开SQL SERVER的目标数据库 --》程序集 --》添加程序集,将DLL导入
(2)执行以下语句
CREATE ASSEMBLY asmHelloWorld FROM '数据库所在机器的路径\myClrTest.dll'
4.在SQL Server中调用我们的.NET方法
CREATE FUNCTION dbo.clrHelloWorld
(
@name as nvarchar(200)
)
RETURNS nvarchar(200)
AS EXTERNAL NAME myClrTest.[CLRTest.CLRFunctions].HelloWorld
SELECT dbo.clrHelloWorld('Mark')
当你运行这段代码的时候,就会得到一个返回结果“Hello Mark”。
CLR存储过程的部署:
Create proc 存储过程名 as EXTERNAL NAME 数据库中Assembly名称.“程序命名空间.程序集中Assembly名称”.程序方法名
5.更新程序集
declare @hash as binary(64) =(select hashbytes('SHA2_512'),
(select * from openrowset
(BULK '数据库所在机器的路径',single_blob) as [DATA])))
EXEC sp_add_trusted_assembly @hash
ALTER ASSEMBLY [myClrDll] FROM '数据库所在机器的路径'