当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 恢复.mdf 数据库步骤

MSSQL
优化SQL Server索引的小技巧
SQL Server的空值处理策略
Windows上的MySQL UDF开发
MS SQLSERVER中如何快速获取表的记录总数
MS SQLSERVER 中如何得到表的创建语句
使用索引调节向导调整应用程序的性能
使用查询分析器调整SQL服务器脚本
SQL Server到Oracle连接服务器的实现
数据库查询结果的动态排序(6)
数据库查询结果的动态排序(7)
保持Oracle数据库优良性能的若干诀窍
数据库管理员制胜之宝
在Linux下访问MS SQL Server数据库
关于如何在查询结果中添加自动编号
如何提取除最新十条记录之外的所有记录?
一个有关DISTINCT的问题解答
关于MSSQL Server中DATETIME类型数据的处理
TOP N 和SET ROWCOUNT N 哪个更快?
金额阿拉伯数字转换为中文的存储过程
谈谈数据从sql server数据库导入mysql数据库的体验

MSSQL 中的 恢复.mdf 数据库步骤


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 162 ::
收藏到网摘: n/a

完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了. 方法一(只有mdf没有日志文件的可以恢复) 证明有效
1.新建同名数据库。
2.把该数据库设置为脱机。
3.删除其日志文件(.LDF),不删除后边的过程执行通不过。
4.在在查询分析器中以超级用户登入,执行以下存储过程,必须以超级用户登入,这是系统级存存处过程。
EXEC sp_detach_db @dbname = 'xxx' //@dbnam 为要还原的数据库
EXEC sp_attach_single_file_db @dbname = 'xxx', @physname = 'yyyy' //@physname 为.mdf文件路径
5.把该数据库设置为联机。
6.刷新数据库,表出来了,数据完好
方法二(无日志文件或日志文件损坏)
  1.新建一个同名的数据库
  2.再停掉sql server(注意不要分离数据库)
  3.用原数据库的数据文件覆盖掉这个新建的数据库
  4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
复制代码 代码如下:

use master
go
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
go
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名''
go
sp_dboption '置疑的数据库名'', 'single user', 'true'
go
DBCC CHECKDB('置疑的数据库名'')
go
update sysdatabases set status =28 where name='置疑的数据库名''
go
sp_configure 'allow updates', 0 reconfigure with override
go
sp_dboption '置疑的数据库名'', 'single user', 'false'
go

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.