CLR自定义函数部署

远程数据库部署CLR 程序集。

 项目生成成功以后,在项目的文件目录的Bin\Debug\ 获取程序集文件。

其中我们需要将SqlServerProject1.dll在服务器SQL Server 2005环境中注册。

将文件拷贝到服务器后,尝试注册程序集:

  1. -- 注册程序集
  2. CREATE ASSEMBLY [SqlServerProject1] FROM 'D:\SQLCLR_DLL\SqlServerProject1.dll'

 

报告错误:

程序集 'SqlServerProject1' 所引用的程序集 'system.core, version=3.5.0.0, culture=neutral, publickeytoken=b77a5c561934e089.' 不在当前数据库中。

SQL Server 已尝试定位并自动从引用程序集所在的位置自动加载被引用程序集,但此操作失败(原因: 2(系统找不到指定的文件。))。请将被引用程序集加载到当前数据库中,然后重试您的请求。

 

这说明SQL SERVER并不支持System.Core.dll程序集,应先加载:


 

复制代码
EXEC dbo.sp_changedbowner @loginame = N'sa'@map = true
GO
sp_configure 'clr enabled'1
GO
RECONFIGURE
GO
ALTER DATABASE [stzpbbs] SET TRUSTWORTHY ON
GO
CREATE ASSEMBLY [System.Core]
AUTHORIZATION [dbo]
FROM 
'C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll'
WITH PERMISSION_SET = UNSAFE
GO
复制代码

 

 

 再次执行:

  • -- 注册程序集
  • CREATE ASSEMBLY [SqlServerProject1] FROM'D:\SQLCLR_DLL\SqlServerProject1.dll';

    --命令成功完成。

     

posted @ 2012-06-27 16:51  静儿~  阅读(262)  评论(0编辑  收藏  举报