从当前数据库中删除角色。提供 sp_dropgroup 是为了向后兼容。在 Microsoft® SQL Server™ 7.0 版中,组作为角色来实现。
sp_dropgroup [ @rolename = ] 'role'
[@rolename =] 'role'
将要从当前数据库删除的角色。role 的数据类型为 sysname,没有默认值。
0(成功)或 1(失败)
列名 | 数据类型 | 描述 |
---|---|---|
Name | sysname | 角色现有成员的名称。 |
sp_dropgroup 使用 role 值调用 sp_droprole 以删除角色。不能删除 public、固定服务器、固定数据库或应用程序角色。可以使用 sp_dropapprole 删除应用程序角色。
如果角色还拥有任何对象,那么就不能将其删除。请在删除角色之前先删除对象,或者,对于那些不允许删除的对象,请使用 sp_changeobjectowner 更改其所有者。
此外,如果存在任何角色的成员,那么也不能删除该角色。可以使用 sp_droprolemember 从角色删除用户。如果任何用户仍然是角色的成员,那么 sp_dropgroup 将显示这些成员。
不能在用户定义的事务内执行 sp_dropgroup。
只有 sysadmin 固定服务器角色、db_securityadmin 或 db_owner 固定数据库角色成员或角色所有者才能执行 sp_dropgroup。
下面的示例从当前数据库删除角色 my_role。
EXEC sp_dropgroup 'my_role'