--不使用原来的日志
1.新建同名新库test
2.断开连接,停止mssql服务NET STOP MSSQLSERVER,移走新生成日志文件,用原mdf替换新mdf,启动数据库服务,test处于置疑状态
3.设置数据库允许直接操作系统表
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
4.设置test为紧急修复模式
update sysdatabases set status=-32768 where name='test'
5.下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('test','C:\test_log.ldf')
6.验证数据库一致性(可省略)
dbcc checkdb('test')
7.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
8.允许对系统目录直接修改复原
use master
sp_configure 'allow updates',0
go
reconfigure with override
go
----------------------mssql2008-------------------------------
1.新建同名新库test
2.sp_detach_db @dbname='test' --分离新库
3.sp_attatch_single_file_db @dbname='test',@physname='C:\DB\test.mdf' -- 用原mdf替换新mdf并附加并移除ldf
-- sp_attach_db @dbname='test',@filename1='C:\DB\test.mdf',@filename2='C:\DB\test_log.LDF'
USE master;
GO
EXEC sp_detach_db @dbname = 'test';
EXEC sp_attach_single_file_db @dbname = 'test', @physname = N'C:\test.mdf';