This article describes the course of actions you should take
I've been developing under SQL 7 for a while. Sometimes transaction log grew too large. My usual fix for that problem was:
I had been using this technique a lot of times under SQL 7, until sometime I have migrated to MSSQL 2000...
After my transaction log grew too large, I stopped the server, deleted the log file and started the server once again. However this time it did not worked: my database got "suspect". I was not able to read or write from the database. A week of work seemed to be lost... Ouch!...
I searched the newsgroups - a lot of people were facing the same problem and nobody knew the solution. All I found was the article: http://support.microsoft.com/support/kb/articles/q251/6/28.asp. I have tried that and revealed information in the article applies only to SQL 7 and does not to SQL 2000...
Did I solved the problem? Read on!
Open Enterprise Manager,


Open Enterprise Manager - the database will be marked as "Emergency Mode"

These articles explain the trick behind suspect and emergency mode:
http://support.microsoft.com/support/kb/articles/Q165/9/18.ASP
http://www.swynk.com/friends/knight/unmarksuspect.asp
http://support.microsoft.com/support/kb/articles/Q180/5/00.asp
Now your database is in "emergency mode". Disregard Enterprise Manager does not show tables, views and procedures - use Query Analyzer's Object Browser instead.
"Emergency mode" means database is locked against any modifications, it is readonly forever. There is no way to bring "emergency" database back to normal state. All we can do is copy all data from it into new database.


Note that there might be complex dependencies between database objects, so Copy SQL Objects task might not work properly. For example: view A is dependent on view Z; Copy SQL Objects task will try to create view A first, -- that will fail, because view Z does not exist yet.
If you receive "Error 1813", this probably means that you are trying to attach database you have improperly detached, or haven't detached at all. Only successfully detached databases can be successfully attached back.

Open Enterprise Manager - the database will be marked as "suspect"

Once your database is "suspect", use instructions outlined above...
Note that database will be marked "suspect" only if transaction log contained active sections. To illustrate the problem for 100%, run a few inserts against the database before deleting transaction log.
Comments
You just saved me countless
You just saved me countless hours of work! THANKS!
I am trying to recover
I am trying to recover stored procedures and table definitions from a development database. I don't care about the data.
I have a back-up that is nearly three years old; I was thinking of recovering scripts for the object definitions and then re-applying them to the backed-up database. But Query Analyzer's object browser does not show me the dates of object creation. How will I identify which objects have changed if I cannot view them in Enterprise Manager?
Or should I simply rename or drop the EMERGENCY MODE database and then rename my new database to the old name? (Can a database in EMERGENCY MODE be renamed?) I don't want to lose the EMERGENCY MODE database -- just in case a dependency prevented an object from being copied by my DTS package.
Hi there, Just wanted to
Hi there,
Just wanted to remark that the info on your page did lead to a resolution for the problem, but in this case your 'endloesung' would have meant rewriting and distributing software with hardcoded routines, etc.
the following SQL script will restore the '0' or normal state on the database
use master
update sysdatabases set status = 0
where name like '<databaseinrecmodename>'
Great information. You were
Great information. You were an immense help in solving my problem!
Good keep it up good its
Good keep it up good its given a perfect solution for me
Thanks so much for this. It
Thanks so much for this. It probably saved my job!!!
great work
for two days i've been researching this issue and your post is the best so far.. thx
Database Suspect
Great information
Thanks very much
it worked! thx a bundle!
it worked! thx a bundle!
Suspect mode
Dear ,
plz help me to recover a mdf data from suspect / emergency mode
I m using sql 2000 i dont hv any backup
i m not able to recollect data
so plz help me to same
Thanks & Regards ,
Vipin jha
vipin_jha123@yahoo.co.in
Answer the mail or write to
Answer the mail or write to andriy.gerasika@gerixsoft.com
it worked!
Thanks for this post!!! I followed it and worked very well!!
thanksssssssssssssss
thanksssssssssssssss
foreign keys?
Is there a way around the foreign key restriction problem you described at the end? If I could just make sql not check for foriegn keys while I do this, I think that would do it.
You can try "script database"
You can try "script database" task, or
from one of the comments above
Post new comment