迁移数据库后,CLR程序集无法使用

xyc880813 2012-06-14 03:10:08
现在有个数据库A
我完整了备份这个数据库A,还原到了另一台服务器上的数据库B中

其中,A有CLR的引用,由于B完整的还原了A的数据库,A中对于这个CLR文件的引用也一并过来了

但是现在这个CLR无法使用,然后我就想重新修改一下这个CLR引用,可是现在既无法Drop(提示有依赖的Object),也没法重新添加(提示重复);

请各位赐教
...全文
296 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
llihua 2013-08-16
  • 打赏
  • 举报
回复
对的,设置数据库的trustworthy属性为on就好了: alter database 数据库名 set trustworthy on
xyc880813 2012-08-01
  • 打赏
  • 举报
回复
哎呀说来丢人
最后设置set trustworthy on搞好了
实在没辙了只好用这个
结贴!
Felixzhaowenzhong 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:

查询一下与CLR 相关的SQL对象,先删除这些对象然后再删除程序集
SQL code
select a.name,m.assembly_class,m.assembly_method,ao.type_desc,
su.name,OBJECT_NAME(um.object_id) from sys.assembly_modules m
join sys.asse……
[/Quote]

GOOD LUCK
xyc880813 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

查询一下与CLR 相关的SQL对象,先删除这些对象然后再删除程序集
SQL code
select a.name,m.assembly_class,m.assembly_method,ao.type_desc,
su.name,OBJECT_NAME(um.object_id) from sys.assembly_modules m
join sys.assemblies a on a.a……
[/Quote]
这个作为最后的解决方法吧,但是这样不知道会不会出别的问题,所以放在最后实在没辙了,再这样弄,谢谢你
Felixzhaowenzhong 2012-06-14
  • 打赏
  • 举报
回复
查询一下与CLR 相关的SQL对象,先删除这些对象然后再删除程序集
select a.name,m.assembly_class,m.assembly_method,ao.type_desc,
su.name,OBJECT_NAME(um.object_id) from sys.assembly_modules m
join sys.assemblies a on a.assembly_id =m.assembly_id
left join sys.module_assembly_usages um on um.assembly_id =a.assembly_id
left join sys.all_objects ao on ao.object_id=um.object_id
left join sys.sysusers su on su.uid=m.execute_as_principal_id
---删除程序集
DROP ASSEMBLY .... WITH NO DEPENDENTS
xyc880813 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

那你在B库上也添加一下CLR引用
[/Quote]

B库里有引用,不能drop,不能修改
xyc880813 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

无法使用 报什么错????
[/Quote]

报错信息比较长,基本上就是说Unsafe:

Msg 10314, Level 16, State 11, Line 2
An error occurred in the Microsoft .NET Framework while trying to load assembly id 65548. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error:
System.IO.FileLoadException: Could not load file or assembly 'datatransfer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An error relating to security occurred. (Exception from HRESULT: 0x8013150A)
System.IO.FileLoadException:
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
Felixzhaowenzhong 2012-06-14
  • 打赏
  • 举报
回复
那你在B库上也添加一下CLR引用
天-笑 2012-06-14
  • 打赏
  • 举报
回复
无法使用 报什么错????

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧