我错误地通过对象资源管理器删除了一个表。我试图创建一个具有相同名称的表,我得到一个错误,即具有该名称的对象已经存在。我有服务器角色系统管理员
我尝试过以下命令。
DROP TABLE 'Test'
结果:
无法删除表,因为它不存在或您没有权限。
select * from INFORMATION_SCHEMA.TABLES order by 3
结果:
表名测试没有结果
select * from sys.objects where name = 'Test'
结果:
空白表
当我键入DROP TABLE时,intellisense显示一个名为Test的表。这似乎是一个权限问题,但由于我将服务器角色作为系统管理员,我不确定它是怎么回事。
我不确定这是否重要但我从登台服务器导入了这个数据库。
答案 0 :(得分:2)
确保您处于所有操作的正确且相同的数据库上下文
要查找表中存在的数据库:
EXEC sys.sp_MSforeachdb 'USE ? SELECT DB_NAME() FROM sys.objects WHERE name = ''Test'' '
答案 1 :(得分:0)
使用SysObjects时,请使用xType列:
select * from sys.objects where name = 'Test' and xType = 'U'
也许有一个同名的对象,使用xtype ='U'我们可以知道是否有用户表。