无法删除视图“XXX”,因为它不存在或您没有权限

问题描述 投票:0回答:10

我们将我们的服务器从 2005 年迁移到 2014 年,用户可以在 2005 年的服务器中删除它 但在 2014 年,我们收到错误消息,因为没有权限或没有退出 我们已授予相同的权限,甚至他是系统管理员。在我们的应用程序方面,他们无法删除应用程序用户通过我们数据库中的用户连接的视图,他拥有所有权限并且他是系统管理员

sql-server sql-server-2005 sql-server-2014 user-permissions
10个回答
2
投票

这个问题可以简单的解决如果它只是发生,请按照以下步骤操作:

  1. 查看你在哪个数据库中工作,例如我在数据库中工作
    student_fast
    .
  2. 获取您正在使用的数据库名称后,编写查询(使用数据库名称)并执行它.
  3. 现在尝试 drop 命令。
  4. 它按照我的问题工作。

0
投票

我有一个非常相似的问题。确保移动数据库时架构没有更改。

在我的例子中,所有的表和视图都被放置在一个带有数据库名称的模式中,所以而不是表被称为例如。 table1,它们被称为 database.table1.

如前所述,这是显示此错误的原因之一。

编辑:在看到评论后,他们提出了同样的建议,即在表名之前使用模式,是的。如果 dbo 是你的模式,那么尝试写 dbo.tablename


0
投票

我遇到了同样的问题(SQL Server 2016)。

有点奇怪,但是当我使用我的本地 Windows 帐户(也映射到 sa)通过

Windows 身份验证
连接到 SQL Server 时,我收到此错误。

当我使用用户名 sa 及其关联的密码通过

SQL Server 身份验证
连接到 SQL Server 时,我拥有所有权限并且这个讨厌的错误消失了。


0
投票

如果一个应用程序/任何其他进程已经连接到您要删除的数据库,您可能会收到该错误。尝试先断开与数据库的连接并删除架构,它应该可以工作。


0
投票

重新启动 SQL 服务器对我有用。 但它不是生产环境的经济实惠的解决方案......


0
投票

错误:-“无法删除表‘ProductDb’,因为它不存在或您没有权限。” 即使我也面临着同样的错误...... 然后我创建了具有相同名称和相同属性的相同表。 然后更新数据库或者刷新数据库 它解决了我的错误。 直接从数据库中删除表时出现此错误。


0
投票

如果数据库中不存在表,那么我们可以从迁移代码中删除删除命令。由于它在数据库中寻找表并且它不存在因此它给出了错误。


0
投票

而不是修改迁移代码,我们可以简单地删除 sql-server 中的数据库并执行 add-migration 然后是 update-databse -verbose 这将在数据库中创建那些表,其中包含所有完整的先前表和数据.


-1
投票

在你的情况下,检查你是否做了两次 Drop view Statement,有时你在两个不同的地方删除视图,这将导致这个问题。


-2
投票

发表已经好几年了。 我遇到了同样的情况。如果我按如下方式运行:

Drop view [Schemaname.viewname]

会报错

如果我拿走

[ ]
,因为

Drop view Schemaname.viewname

有效。不知道是什么原因。

© www.soinside.com 2019 - 2024. All rights reserved.