附加只有数据文件无日志文件,亲测

9/1/2015来源:SQL技巧人气:2522

附加只有数据文件无日志文件,亲测

写这个东西只是为了记录一下作为新手的自己经历,大家就不要吐得厉害哇,呵呵。。。。

1、新建一个数据库名相同的数据库

2、停止sql实例服务

3、把数据库文件覆盖新的数据库文件

4、启动实例服务

5、执行以下语句

alter database dbname set emergency--紧急模式

go

alter database dbnameset single_user--单用户

go

--开始修复,这部分如果报错不用管

dbcc checkdb(dbname,REPAIR_ALLOW_DATA_LOSS)

go

dbcc checkdb(dbname,REPAIR_REBUILD)

go

dbcc checkdb(dbname)

go

--修改数据库为多用户模式

alter database dbnameset multi_user

然后这里就可以了???网上很多都是这样子,但都是水的,亲测无效,

如果数据库是正常状态的话是可以的,但是如果数据库还处于紧急状态的话,就无法备份的。

SELECT DATABASEPROPERTYEX('turbocrm701', 'Status') --查看状态emergency

如果还是紧急状态可以做如下处理:

alter databasedbnameset single_user--单用户

go

--重建数据库日志文件

ALTER DATABASE dbnameREBUILD LOG ON (NAME=dbname_log',FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\dbname_log.ldf')

如果原数据库文件没改名字的话,会提示已经存在之类的话

改下名字再执行,如果成功的话再执行

--

alter database dbname set multi_user

go

ALTER DATABASE dbname SET ONLINESELECT DATABASEPROPERTYEX('dbname', 'Status')

如果状态还没改过来我也没办法了