2016-03-14 27 views
1

在数据库中,我通常使用基于XML的版本的分割函数。后来在一些研究中,我创建了拆分函数的程序集CLR版本。MS SQL Server检查是否存在已注册的程序集

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

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

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

任何人都知道这是可能的吗?

回答

2

试试这个。还有更多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 
+0

不错,适合我,谢谢你的回复。 – YvesR