3

我在 Microsoft SQL Server Management Studio CLR 中工作,将 .dll 作为程序集注册到数据库中。现在,我正在将 Jayrock(Jayrock.dll、Jayrock.Json.dll)DLL 注册到数据库中。这是一个正在进行的项目,有几个人编辑数据库和 SQL 代码。我放弃了所有已更改(和未更改)的程序集和程序,以从第一格开始。当我去删除“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# 中获得与反序列化相关的异常,并且如果我无法正确添加我的程序集,我将无法调试这些程序集。

4

1 回答 1

0

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

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

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

于 2012-06-29T18:17:43.927 回答