sql - 无法删除不是我创建的程序集, "DROP ASSEMBLY"不允许将架构名称指定为程序集名称的前缀

标签 sql sqlclr

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

最佳答案

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

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

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

关于sql - 无法删除不是我创建的程序集, "DROP ASSEMBLY"不允许将架构名称指定为程序集名称的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085609/

相关文章:

sql-server - Visual Studio 2013 CLR存储过程

sql-server - FileLoadException/Msg 10314 运行 CLR 存储过程时出错

c# - 在MS SQL Server 2012中将Oracle.DataAccess注册为SQLCLR程序集时出现问题

sql - 检查一个表是否应该在3个月的范围内连续有最近3个月的3条记录?

java - 如何修复错误

.net - GAC 中的 SQLCLR 函数和 System.Runtime.Serialization

.net - 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

sql - 在 BigQuery 中取消嵌套结构

sql - 使用输出在合并语句中设置变量

sql - Postgresql - 选择日期 = "01/01/11"的内容