When you restore a SQL Server database to another server or PC, sometimes the sysusers table is not consistent and users can't be dropped from the database. Here's how to drop user databases if they can't be dropped using normal syntax like sp_dropuser. This method has been tested on Sybase 11 and Microsoft SQL Server 7 and 2000.
Only DBAs should execute this command!
- Configure "allow update". The default is 0:
sp_configure "allow update",1 use master go reconfigure with override
- Use (DatabaseName)
- You should see UID from table sysusers:
select * from sysusers
- Now you can delete the users database:
delete sysusers where uid = ?
- Check the UID and Name of Users for deleted
- Now configure the system database again:
sp_configure "allow update", 0 use master go reconfigure with override
Susan K. writes: This tip forgets that the user may also have permissions, own objects etc. If one is going into the system tables, one should get all the relevant tables.
For More Information
- Feedback: E-mail the editor with your thoughts about this tip.
- More tips: Hundreds of free SQL Server tips and scripts.
- Tip contest: Have a SQL Server tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize -- submit your tip today!
- Ask the Experts: Our SQL, database design, SQL Server, DB2, and data warehousing gurus are waiting to answer your toughest questions.
- Forums: Ask your technical SQL Server questions--or help out your peers by answering them--in our active forums.
- Best Web Links: SQL Server tips, tutorials, and scripts from around the Web.
This was first published in February 2005