Не удается создать / удалить таблицу - PullRequest
0 голосов
/ 22 июня 2011

Я сделал ошибку, удалив таблицу через проводник объектов. Я попытался создать таблицу с тем же именем и получаю сообщение об ошибке, что объект с таким именем уже существует. У меня есть серверная роль администратора системы

Я пробовал следующие команды.

DROP TABLE 'Test'

Результат:

Невозможно удалить таблицу, поскольку она не существует или у вас нет разрешения.

select * from INFORMATION_SCHEMA.TABLES order by 3

Результат:

Нет результата с именем таблицы Test

select * from sys.objects where name = 'Test'

Результат:

пустой стол

Когда я набираю DROP TABLE, intellisense показывает таблицу с именем Test. Кажется, это проблема с разрешениями, но, поскольку у меня есть роль сервера в качестве системного администратора, я не уверен, как это может быть.

Я не уверен, имеет ли это значение, но я импортировал эту базу данных с промежуточного сервера.

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Убедитесь, что вы находитесь в правильном и одинаковом контексте базы данных для всех операций

Чтобы определить, в какой базе данных существует таблица:

EXEC sys.sp_MSforeachdb 'USE ? SELECT DB_NAME() FROM sys.objects WHERE name = ''Test'' '
0 голосов
/ 22 июня 2011

При использовании SysObjects используйте столбец xType:

select * from sys.objects where name = 'Test' and xType = 'U'

Возможно, существует объект с таким же именем, используя xtype = 'U', мы можем узнать, существует ли таблица пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...