2000可以从数据库文件恢复
1:分离数据库   企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库  企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
   再将此数据库设置自动收缩
 或用代码: 
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs', 
   @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

解决方案 »

  1.   

    Log Explorerhttp://www.ttdown.com/SoftDown.asp?ID=14562
    http://www.yiii.net/app/servlet/net.yiii.club.DownloadServlet?Information_Id=I00023471
    解压缩密码 www.heibai.nethttp://www.ttdown.com/softview_8647.htm
    注册机产生的是注册码,是两个用解压缩密码解开后,压缩包里也有一个注册机的
    打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
    选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
    想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
    T-sql代码就可以了例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....
    系统中有一个数据库DB1,系统正在使用的过程中,不小心删除了某表T1的数据
    现我可以按照用完整备份文件加日志备份时间点TIME1恢复的方法来恢复该数据库但问题出在该数据库一直还必须在使用中,所以除了你删除了数据的TA表外,其它的
    表的数据你不能只是恢复到错误时间点TIME1处,因为,TIME1以后也有数据变化解决这个问题有两个方法
    1:用LOG EXEPLORE 可以轻松搞定2:先建立一个数据库DB2,将完整备份文件恢复到DB2中,再用DB2中的T1数据来更新
       DB1中的T1数据即可.
    --查看备份信息
    RESTORE FILELISTONLY FROM DISK ='C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup'--还原旧的备份 
    RESTORE DATABASE db2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup' with replace,norecovery,
    move 'db1_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_data.mdf',
     move 'db1_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_log.ldf' --还原数据日志到时间点
    restore log  db2  from disk='db_log_backup'  with stopat='2003/4/22 9:57'