Yve*_*esR 1 t-sql sql-server .net-assembly
在数据库中,我通常使用基于 XML 的拆分函数版本。后来通过一些研究,我创建了 split 函数的 Assembly 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
Run Code Online (Sandbox Code Playgroud)