在 SQL Server 2012 中使用 SP_AddRole 添加角色时,数据库中已有一个名为 "Test" 的对象

There is already an object named "Test" in the database while adding a role using SP_AddRole in SQL Server 2012

我正在尝试使用以下命令在 SQL Server 2016 的主数据库中添加一个角色:

SP_AddRole 'test'

我收到这个错误:

There is already an object named "test" in the database.

我检查了我的master数据库中的扩展角色,我发现我的master数据库中没有名称为“test”的角色。

我仍然尝试使用以下查询删除该角色:

Drop Role 'Test'

我收到这个错误:

Cannot drop the role because it does not exist or you do not have permissions

当我尝试使用以下查询更改角色时:

Alter Role Add Member "Domain\userName" 

我遇到了如下相同的错误:

Cannot alter the role because it does not exist or you do not have permissions.

注意:我拥有 SQL 服务器和主数据库的所有权限和特权。

有人可以建议如何解决这个问题吗?

我无法更改角色名称,因为使用此名称创建角色对我的应用程序非常重要。

那个 SQL 服务器数据库中已经创建了一个 SCHEMA。

我已删除该架构

DROP SCHEMA Test

然后下面 SQL 查询成功了。

SP_AddRole 'Test'

当我创建角色时,会创建一个具有相同名称的默认模式,当我展开模式时它是可见的。

当我尝试删除角色时,我需要先删除架构,然后再删除角色。

即使具有相同名称(但角色不存在)的模式存在,SQL服务器也不允许我创建具有相同名称的新角色。

引用here