Разрешение для таблиц DROP в SQL Server (T-SQL) - PullRequest
0 голосов
/ 16 июня 2019

При выполнении команды DROP (T-SQL) ниже на сервере SQL появляется следующее сообщение:

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

Comand

EXEC sp_MSForEachTable 'DROP TABLE [?]'

Однако, когда я запускаю другую команду T-SQL или базовую таблицу DROP,Приведенное выше сообщение об ошибке не отображается, и команда выполняется правильно.

DROP TABLE TABELA
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT all'

Обе вышеперечисленные команды работают, в чем причина EXEC sp_MSForEachTable 'DROP TABLE [?]' Требуется разрешение?и как дать это разрешение?

1 Ответ

1 голос
/ 16 июня 2019

Попробуйте без скобок.Похоже, они заставляют движок думать, что вы хотите отбросить таблицу с именем [dbo].[tablea], поскольку sp_MSForEachTable уже цитирует, если необходимо.И, конечно же, таблица с именем [dbo].[tablea] не существует.

EXEC sp_MSForEachTable 'DROP TABLE ?'

db <> fiddle

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