MS SQL 服务器检查注册程序集是否存在

MS SQL Server check existence of registered Assembly

在数据库中,我通常使用基于 XML 的拆分函数版本。后来通过一些研究,我创建了 split 函数的汇编 CLR 版本。

在数据库更新过程(补丁)中,我删除了所有用户函数,修补数据库,然后再次创建用户函数。由于补丁进程,它将再次恢复 XML 版本的拆分功能。

到目前为止,我已经检查了 MSDN,但找不到任何提示: 如何检查 DLL 是否在数据库中注册为程序集?

在 Management Studio 中,我可以打开数据库 -> 程序能力 -> 程序集,并且可以看到 DLL(如果已注册)。但是我想以编程方式执行此操作,如果 DLL 可用,则在 CREATE FUNCTION 上使用 CLR 版本,否则我想使用 XML 版本来确保拆分函数在任何情况下都可用。

有人知道这是否可行吗?

试试这个。还有 sys.%assembly% 次观看,也请查看。

select 
    *
from sys.assembly_files f
full outer join  sys.assemblies a
    on f.assembly_id=a.assembly_id
full outer join  sys.assembly_modules m
    on a.assembly_id=m.assembly_id