I'm trying to delete a user's schema from a database and I'm getting the following error:
TITLE: Microsoft SQL Server Management Studio
------------------------------
Drop failed for Schema 'ext_owner'. (Microsoft.SqlServer.Smo)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Drop+Schema&LinkId=20476
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Cannot drop schema 'ext_owner' because it is being referenced by object 'getroles'. (Microsoft SQL Server, Error: 3729)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=3729&LinkId=20476
------------------------------
BUTTONS:
OK
------------------------------
What is the getroles object?
How do I get rid of the reference so I can remove the old user account?
SELECT * FROM sys.objects
WHERE name = 'getroles'
AND schema_id = SCHEMA_ID('ext_owner');
Then do:
DROP <object type> ext_owner.getroles;
--or
ALTER SCHEMA <some other schema> TRANSFER ext_owner.getroles;
You will likely have to repeat this a bunch of times. You can't drop a schema that is not empty.