现在有个数据库A
我完整了备份这个数据库A,还原到了另一台服务器上的数据库B中其中,A有CLR的引用,由于B完整的还原了A的数据库,A中对于这个CLR文件的引用也一并过来了但是现在这个CLR无法使用,然后我就想重新修改一下这个CLR引用,可是现在既无法Drop(提示有依赖的Object),也没法重新添加(提示重复);请各位赐教

解决方案 »

  1.   

    那你在B库上也添加一下CLR引用
      

  2.   


    报错信息比较长,基本上就是说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)
      

  3.   


    B库里有引用,不能drop,不能修改
      

  4.   

    查询一下与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 
      

  5.   

    哎呀说来丢人
    最后设置set trustworthy on搞好了
    实在没辙了只好用这个
    结贴!
      

  6.   

    对的,设置数据库的trustworthy属性为on就好了:
    alter database 数据库名 set trustworthy on