在 SQL 服务器上运行下面的 DROP 命令 (T-SQL) 时,会出现以下消息:
Cannot drop the table '[dbo].[TABELA]', because it does not exist or you do not have permission.
命令
EXEC sp_MSForEachTable 'DROP TABLE [?]'
但是,当我运行另一个T-SQL命令或基本的DROP Table时,不会显示上述错误消息,并且命令执行正确。
DROP TABLE TABELA
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT all'
以上两个命令都有效,EXEC sp_MSForEachTable 'DROP TABLE [?]' 的原因是什么
需要权限?以及如何授予此权限?
最佳答案
尝试不使用括号。它们似乎让引擎相信您想要删除名为 [dbo].[tablea]
的表命名,因为 sp_MSForEachTable
已在必要时引用。当然,名为 [dbo].[tablea]
的表不存在。
EXEC sp_MSForEachTable 'DROP TABLE ?'
关于sql - 在 SQL Server (T-SQL) 中删除表的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621927/