不能放弃视图' XXX'因为它不存在或您没有权限

时间:2016-04-07 16:43:18

标签: sql-server sql-server-2005 sql-server-2014 user-permissions

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

5 个答案:

答案 0 :(得分:1)

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

有点奇怪,但当我使用我的本地Windows帐户(也映射到SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<your_table>' and COLUMN_KEY = 'PRI' )通过 Windows身份验证连接到SQL Server时,我收到此错误。< / p>

当我使用用户名sa及其相关密码通过 SQL Server身份验证连接到SQL Server时,我拥有所有权限,这个讨厌的错误消失了。

答案 1 :(得分:0)

我有一个非常类似的问题。移动数据库时,请确保Schema没有更改。

在我的例子中,所有的表和视图都放在一个带有databasename的模式中,所以不要调用表格,例如。 table1,它们被称为database.table1。

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

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

答案 2 :(得分:0)

在您的情况下,请检查是否两次创建了Drop view Statement,有时会在两个不同的位置删除该视图,这将导致此问题。

答案 3 :(得分:0)

如果只是发生此问题,就可以简单地解决,请按照以下步骤操作:

  1. 查看您正在使用哪个数据库,例如我正在使用数据库student_fast
  2. 获取您正在使用的数据库名称后,编写查询(使用database_name)并执行它
  3. 现在尝试放置命令。
  4. 它可以解决我的问题。

答案 4 :(得分:-1)

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

Drop view [Schemaname.viewname]

会出现错误。

如果我拿走[ ],就像

Drop view Schemaname.viewname

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