高手请教

cppluo 2004-04-15 09:34:25
如果创建一个数据库一般情况下会产生两个文件,例如产生一个Friends的数据库,产生一个Friends_data.MDF的数据文件和Friends_Log.LDF日志文件。
现在我从别人那里考了一个数据库过来只有数据文件,没有日志文件。我先创建一个Friends数据库,然后将Friends_data.MDF数据文件覆盖原来的文件,结果数据库不能使用。(原来的机器已经格式化了,文件没法复制)

请教各位大虾到底是有何好办法让我能够将该数据库恢复。具体操作步骤如何?
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-04-15
  • 打赏
  • 举报
回复
--如果上面的方法不行

备份数据文件,然后按下面的步骤处理:

1.新建一个同名的数据库(数据文件与原来的要一致)

2.再停掉sql server(注意不要分离数据库)

3.用原数据库的数据文件覆盖掉这个新建的数据库

4.再重启sql server

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

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



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
zjcxc 元老 2004-04-15
  • 打赏
  • 举报
回复
附加数据库是不需要先新建库的,直接附加就行了.:

企业管理器
--右键"数据库"
--所有任务
--附加数据库
--选择你的.mdf文件名
--确定
--如果提示没有.ldf文件,是否创建,选择"是"


查询分析器中的方法:
--有数据文件及日志文件的情况
sp_attach_db '数据库名'
,'数据文件名(*.mdf注意要带目录)' --后面可以是用,分隔的该数据库的多个数据文件
,'日志文件名(*.ldf注意要带目录)' --后面可以是用,分隔的该数据库的多个日志文件

--如果只有数据文件的情况
sp_attach_single_file_db '数据库名'
,'数据文件名(*.mdf注意要带目录)' --后面可以是用,分隔的该数据库的多个数据文件

ghostzxp 2004-04-15
  • 打赏
  • 举报
回复
或企业管理器:数据库-所有任务-附加!
shuiniu 2004-04-15
  • 打赏
  • 举报
回复
用sp_attach_single_file_db试试!
ghostzxp 2004-04-15
  • 打赏
  • 举报
回复
sp_attach_single_file_db
将只有一个数据文件的数据库附加到当前服务器。
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'

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧