-1
我已经浏览了几十篇关于这个错误的文章,并且他们都有相同的解决方案,删除了由模式引用的所有对象 - 但是错误给我的对象不存在。不能删除模式,因为它正在被对象引用
所以我尝试运行以下语法
DROP SCHEMA [Application]
它给人的错误
Cannot drop schema 'Application' because it is being referenced by object 'ApplicationRequestTable'.
所以我觉得“OK没问题,我会删除对象,就像它指出“过去几个意见”,所以我输入
SELECT * FROM sys.objects WHERE name = N'ApplicationRequestTable'
而且上面没有任何回应 - 我正在做什么ng错误,因为它看起来像我的模式引用了一个不会退出的对象?!?我通过键入
SELECT o.name, s.name FROM sys.objects o JOIN sys.schemas s on o.schema_id = s.schema_id ORDER by s.name
进一步验证并没有在应用程序架构下,单个对象...任何指针将不胜感激,因为我无法看到所有现在参照这个模式什么?
版:SQL服务器2014 SP1(建12.0.4100)
我发现表中table_types(这是一个用户定义的表毕竟) 'SELECT * FROM sys.table_types其中name = N'ApplicationRequestTable'' 这ApplicationRequestTable不会出现在sys.all_columns,尽管如此,你有这个错误... 'SELECT OBJECT_NAME(ac.object_id)FROM sys.all_columns ac ORDER BY OBJECT_NAME(ac.object_id)' 返回14786行,ApplicationRequestTable不是其中之一,Application.ApplicationRequestTable表在对象资源管理器中也不存在。 –
解释为什么我错了,即使您在要删除的架构中找到了您的对象。 Application.ApplicationRequestTable不是一个表。它是一个**表类型**,它出现在Programmability..Types节点(不是Tables节点)下,并且在sys.columns中没有任何条目。我提到了sys.all_columns,所以你可以找到依赖于模式的对象:不要查找关于你的对象的元数据。 – gbn
好吧,我现在看到。你的措辞是“完整列表”,所以我认为我的ApplicationRequestTable应该在所谓的“完整”列表中 - 你是指对象类型列表(如果这是正确的措辞,即table_types)?因此,从列表中的24个中选择一个将返回我的ApplicationRequestTable的答案 –