Compartilhar via


sp_droprole (Transact-SQL)

Aplica-se: SQL Server

Remove uma função de banco de dados do banco de dados atual.

Importante

No SQL Server 2005 (9.x), sp_droprole foi substituída pela instrução DROP ROLE. sp_droprole está incluído apenas para compatibilidade com versões anteriores do SQL Server e pode não ter suporte em uma versão futura.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@rolename [ = ] N'nome da função'

O nome da função de banco de dados a ser removida do banco de dados atual. @rolename é sysname, sem padrão. @rolename já deve existir no banco de dados atual.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Somente funções de banco de dados podem ser removidas usando sp_droprole.

Uma função de banco de dados com membros existentes não pode ser removida. Todos os membros de uma função de banco de dados devem ser removidos antes que ela possa ser removida. Para remover usuários de uma função, use sp_droprolemember. Se algum usuário ainda for membro da função, sp_droprole exibirá esses membros.

As funções fixas e a função pública não podem ser removidas.

Uma função não poderá ser removida se possuir protegíveis. Antes de descartar uma função de aplicativo que possui itens protegíveis, é necessário transferir a propriedade dos itens protegíveis primeiro ou descartá-los. Use ALTER AUTHORIZATION para alterar o proprietário de objetos que não devem ser removidos.

sp_droprole não pode ser executado em uma transação definida pelo usuário.

Permissões

Requer CONTROL permissão na função.

Exemplos

O exemplo a seguir remove a função de aplicativo Sales.

EXEC sp_droprole 'Sales';
GO