sys.sp_droprole (Transact-SQL)

Gäller för:SQL Server

Tar bort en databasroll från den aktuella databasen.

Important

I SQL Server 2005 (9.x) sp_droprole ersattes det av satsenDROP ROLE. sp_droproleingår endast för kompatibilitet med tidigare versioner av SQL Server och kan komma att inte stöds i en framtida version.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @rolename = ] N'rollnamn'

Namnet på databasrollen som ska tas bort från den aktuella databasen. @rolename är sysname, utan standard. @rolename måste redan finnas i den aktuella databasen.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

Endast databasroller kan tas bort genom att använda sp_droprole.

En databasroll med befintliga medlemmar kan inte tas bort. Alla medlemmar i en databasroll måste tas bort innan databasrollen kan tas bort. För att ta bort användare från en roll, använd sp_droprolemember. Om några användare fortfarande är medlemmar i rollen, sp_droprole visas dessa medlemmar.

Fasta roller och den offentliga rollen kan inte tas bort.

En roll kan inte tas bort om den äger några värdepapper. Innan du tar bort en programroll som äger skyddsbara objekt måste du först överföra ägarskapet för skyddsbara objekt eller släppa dem. Använd ALTER AUTHORIZATION för att byta ägare till objekt som inte får tas bort.

sp_droprole kan inte köras i en användardefinierad transaktion.

Permissions

Kräver CONTROL tillstånd för rollen.

Examples

Följande exempel tar bort applikationsrollen Sales.

EXECUTE sp_droprole 'Sales';
GO