【发布时间】:2015-08-31 12:25:49
【问题描述】:
我以具有数据库角色 db_owner 成员身份的登录名/用户身份登录并尝试删除表,但在 SQLServer 2012 中收到错误 208 Invalid object name 'ddl_log'。
drop table [dbo].[ddl_log]
select、delete 和 truncate 工作正常,我可以添加新列但不能删除任何旧列。
该表在 SSMS 中可见,并且在以下所有视图中查找时,我在 dbo (schema_id=1) 架构上找到了该对象。
select * from sys.objects where name = 'ddl_log'
select * from sys.schemas
select * from sys.tables where name = 'ddl_log'
select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME='ddl_log'
select * from sys.sysobjects where name = 'ddl_log'
该表最初用于我们的一个主数据库中的 SQL Profiler,然后该数据库已备份并恢复到当前数据库。我认为这是哪里出了问题,但无法弄清楚是什么/为什么。
有谁知道这张桌子上可能缺少哪些信息/权限会阻止我删除它?
【问题讨论】:
-
此表在
master数据库中吗?使用全名DROP TABLE [database_name].[dbo].[ddl_log] -
右击表,选择“查看依赖项”...
-
似乎该表依赖于该数据库中不存在的架构上的触发器(schema_id=0)。关于如何删除该触发器的任何想法?
-
通过删除 /Programmability/Database Triggers/
下的触发器解决了这个问题,然后我就可以删除我的表了。感谢您为我指明正确的方向:)
标签: sql-server database sql-server-2012