sp_droprole (Transact-SQL)

Quita una función de base de datos de la base de datos actual.

Nota importanteImportante

En SQL Server 2005, sp_droprole se reemplaza con la instrucción DROP ROLE. sp_droprole se incluye sólo por compatibilidad con versiones anteriores de SQL Server y es posible que esta instrucción deje de admitirse en versiones futuras.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_droprole [ @rolename= ] 'role'

Argumentos

  • [ @rolename = ] 'role'
    Es el nombre de la función de base de datos que se va a quitar de la base de datos actual. role es de tipo sysname y no tiene valor predeterminado. role debe existir en la base de datos actual.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Con sp_droprole sólo se pueden quitar funciones de base de datos.

No se puede quitar una función de base de datos que tenga miembros. Todos los miembros de una función de base de datos deben eliminarse previamente para poder quitar la función de base de datos. Para quitar usuarios de una función, utilice sp_droprolemember. Si quedan miembros en la función, puede ver cuáles son con sp_droprole.

Las funciones fijas y la función public no se pueden quitar.

Tampoco se puede quitar una función que sea propietaria de algún elemento que puede protegerse. Antes de quitar una función de aplicación que tiene elementos que pueden protegerse, primero debe transferir la propiedad de estos elementos o quitarlos. Use ALTER AUTHORIZATION para cambiar el propietario de los objetos que no se deban quitar.

sp_droprole no puede ejecutarse en una transacción definida por el usuario.

Permisos

Requiere el permiso CONTROL en la función.

Ejemplos

En el siguiente ejemplo se quita la función de aplicación Sales.

EXEC sp_droprole 'Sales';
GO