在SQL Server上运行以下DROP命令(T-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 [?]'
需要许可的原因是什么?以及如何授予此权限?
答案 0 :(得分:1)
尝试不带括号。它们似乎使引擎相信您要删除名为 [dbo].[tablea]
的表,因为sp_MSForEachTable
已经在需要时加了引号。当然,不存在名为[dbo].[tablea]
的表。
EXEC sp_MSForEachTable 'DROP TABLE ?'