无法删除CLR,错误“资源池中的系统内存不足'默认'”

时间:2013-09-19 21:32:31

标签: sql-server sql-server-2008-r2

当我尝试删除程序集时,我收到此错误:

DROP ASSEMBLY [test.Sql.Clr]
Msg 701, Level 17, State 13, Line 1
There is insufficient system memory in resource pool 'default' to run this query.

我在Windows NT 6.1(Build 7601:Service Pack 1)上运行Microsoft SQL Server 2008 R2(SP1) - 10.50.2500.0(X64)企业版(64位)。

当我运行sys.assemblies时,有问题的程序集有一个空白的clr_name,并且包含一个正确替换的依赖程序集(尝试加载较新的程序集时出现问题)

select name, clr_name from sys.assemblies
test.Sql.Clr.Models test.sql.clr.models...
test.Sql.Clr    

有没有人看过这个问题或知道如何解决?

约翰

1 个答案:

答案 0 :(得分:2)

在Steve的帮助下,我能够按如下方式清理它:使用链接中的技术直接访问系统表(使用-m参数在单用户模式下启动SQL,使用直接管理员模式运行sqlcmd -一只旗)。我们通过查看sys.assemblies和sys.assembly_files上的sp_helptext手动清除了对损坏的CLR的所有引用。我们不得不清理很多表,并且在删除所有损坏的条目之前无法正确加载程序集。