无法删除架构,因为它是按对象引用的

时间:2016-04-08 10:53:06

标签: sql sql-server-2014

我查看过几十篇有关此错误的帖子,他们都有相同的解决方案,删除架构引用的所有对象 - 但错误给我的对象不存在。

所以我尝试运行以下语法

DROP SCHEMA [Application]

它给出的错误是

Cannot drop schema 'Application' because it is being referenced by object 'ApplicationRequestTable'.

所以我认为"没问题,我将删除该对象,就像它指出的过去几个观点一样#34;所以我输入

SELECT * FROM sys.objects WHERE name = N'ApplicationRequestTable'

上面没有返回任何内容 - 我做错了什么,因为看起来我的架构引用的是一个不会退出的对象?!?我通过输入

进一步验证
SELECT o.name, s.name FROM sys.objects o JOIN sys.schemas s on o.schema_id = s.schema_id ORDER by s.name

在Application模式下没有一个对象...任何指针都会受到高度赞赏,因为我现在看不到任何引用此模式的内容了吗?

版本:SQL Server 2014 SP1(版本12.0.4100)

1 个答案:

答案 0 :(得分:1)

并非所有对象都在sys.objects

至少......

  • sequences(sys.sequences)
  • 用户定义的表类型(sys,table_types)
  • 服务代理对象(sys.service_queues)

完整列表

SELECT OBJECT_NAME(ac.object_id) FROM sys.all_columns ac WHERE name = 'schema_id'