在数据库中,我通常使用基于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