sql - 在 SQL Server (T-SQL) 中删除表的权限

标签 sql sql-server

在 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 ?'

db<>fiddle

关于sql - 在 SQL Server (T-SQL) 中删除表的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621927/

相关文章:

mysql - 更新行数

sql - Rails ActiveRecord : Getting the id of a raw insert

sql - 如何比较 n :m assignments?

c# - ListBox 不断将选定的索引返回为 -1

sql-server - 如何在sql中使用查询重命名函数?

sql - 使用 Join,从多个没有外键的 SQL 表中选择值

php - Laravel 5.2 中的 "IN"查询

mysql - 按计划将 MySQL 表数据移动到新表中

sql-server - 如何监视 SQL Server 中的表的更改

sql-server - 跨多个利率计算利息