无法删除我没有创建的程序集,“DROP ASSEMBLY”不允许指定模式名称作为程序集名称的前缀

时间:2012-06-18 15:04:09

标签: sql sqlclr

我正在Microsoft SQL Server Management Studio CLR中将.dll作为程序集注册到数据库中。现在,我正在将Jayrock(Jayrock.dll,Jayrock.Json.dll)DLL注册到数据库中。这是一个正在进行的项目,有一些人编辑数据库和SQL代码。我删除了所有已更改(和未更改)的程序集和过程从方块1开始。当我去装配“web”(下面的代码)

CREATE ASSEMBLY Web
AUTHORIZATION dbo
FROM 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll'
WITH PERMISSION_SET = UNSAFE
GO

我收到了错误消息:

DROP ASSEMBLY failed because the specified assemblies are referenced by assembly 'Jayrock.Json'.

我从来没有一个名为Jayrock.Json的集会,我的团队中没有人创建过这样的集会。尝试删除它会收到此问题标题的错误消息:

drop assembly Jayrock.Json
go


"DROP ASSEMBLY" does not allow specifying a schema name as a prefix to the assembly name.

我添加''和()仍然不允许我放弃这个程序集。我删除了所有已创建的程序集,但“Web”仍然不会丢弃。我不太确定我能做什么,因为创建我需要使用Jayrock的程序集不起作用,因为它与'Jayrock.Json'程序集相同。我的代码中存在某种错误,因为我从反序列化和缺少程序集的C#中获得异常,如果我无法正确添加程序集,则无法调试。

1 个答案:

答案 0 :(得分:0)

运行以下命令,查看是否有名为“Jayrock.Json”的程序集。

SELECT * FROM Sys.Assemblies WHERE name like '%Json%'

如果你这样做,就像Martin Smith在评论中所说的那样,你需要在DROP语句中将[]放在对象名称周围。