CLR程序集存储在数据库中,并作为数据库的一部分进行镜像。每个数据库都有自己的sys.assembles视图,如果查询master.sys.assembles dmv,则在dmv中找不到其他数据库的程序集。在镜像包含程序集的数据库时,可能会遇到一些问题。第一种情况是,如果您有外部访问或不安全的程序集,并且使用了trustworty位来允许数据库中的程序集,则在故障转移时恢复过程中将禁用此功能,因此必须重新启用它。如果使用证书对程序集进行签名,则必须在镜像服务器上手动创建与程序集关联的证书和登录名,因为它存储在master中,而不是数据库中。程序集将在那里,SQL数据库对象也将在那里,但它可能不起作用。作为故障转移的一部分,您可能还需要更改数据库所有者名称。
http://sqlblog.com/blogs/jonathan_kehayias/archive/2008/03/06/clr-safety-issues-after-database-restore-to-new-server.aspx
如果您想验证我上面所说的内容,请使用上面的程序集备份用户数据库,并将其还原到另一台服务器。您的程序集将是数据库的一部分。