当前位置:  开发笔记 > 数据库 > 正文

如何将所有功能从CLR Assembly中删除,然后再放入SQL Server中?

如何解决《如何将所有功能从CLRAssembly中删除,然后再放入SQLServer中?》经验,为你挑选了1个好方法。

我收到“投递装配失败,因为它被对象引用”错误。据我了解,我需要在删除该程序集之前删除所有引用到该程序集的功能。有什么通用的方法吗?



1> cyberj0g..:

您将需要一个像这样的小脚本:

DECLARE @sql NVARCHAR(MAX) = N'';
DECLARE @assembly_name NVARCHAR(MAX)='assembly'
SELECT @sql += '
DROP ' + 
CASE
 WHEN o.type='PC' THEN 'PROCEDURE ' 
 ELSE 'FUNCTION '
END
+ QUOTENAME(o.Name)
+ ';'
FROM Sys.Assemblies asm
INNER JOIN SYS.ASSEMBLY_MODULES m ON asm.assembly_id=m.assembly_id
INNER JOIN SYS.OBJECTS o ON m.object_id = o.object_id
WHERE asm.name=@assembly_name
SET @sql=@sql+'
DROP ASSEMBLY '+QUOTENAME(@assembly_name)

PRINT @sql;
EXEC sp_executesql @sql;

但是,删除所有程序集的从属对象并不安全,因此请注意将其删除。

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有