sp_droprole (Transact-SQL)

适用范围:SQL Server

从当前数据库中删除数据库角色。

重要

在 SQL Server 2005(9.x)中, sp_droprole 已替换为 DROP ROLE 语句。 sp_droprole 仅用于与早期版本的 SQL Server 兼容,在将来的版本中可能不受支持。

Transact-SQL 语法约定

语法

sp_droprole [ @rolename = ] N'rolename'
[ ; ]

参数

[ @rolename = ] N'rolename'

要从当前数据库中删除的数据库角色的名称。 @rolenamesysname,无默认值。 当前数据库中必须已存在@rolename

返回代码值

0(成功)或 1(失败)。

注解

只能使用 sp_droprole 删除数据库角色。

无法删除具有现有成员的数据库角色。 必须删除数据库角色的所有成员,然后才能删除该数据库角色。 若要从角色中删除用户,请使用 sp_droprolemember。 如果任何用户仍然是该角色的成员, sp_droprole 则显示这些成员。

无法删除固定角色和公共角色。

如果角色拥有任何安全对象,则无法删除该角色。 在删除拥有安全对象的应用程序角色之前,必须首先移交安全对象的所有权或将其删除。 用于 ALTER AUTHORIZATION 更改不得删除的对象所有者。

sp_droprole 无法在用户定义的事务中执行。

权限

CONTROL需要对角色具有权限。

示例

以下示例删除应用程序角色 Sales

EXEC sp_droprole 'Sales';
GO