MS SQL Server 检查已注册程序集是否存在



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

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

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

在管理工作室中,我可以打开数据库 ->程序能力 ->程序集,并可以看到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

最新更新