SQL7.0,只有_DATA.MDF和_LOG.LDF,怎么恢复数据库?(0分)

  • 主题发起人 主题发起人 cw2
  • 开始时间 开始时间
用运Sp_attached_db
 
SQL SERVER 7
Sp_attach_db 'databasename', 'c:/mssql7/data/databasename.mdf','C:/mssql7/data/databasename_log.ldf'
 
登录一个同名的database,然后用*.mdf和*.ldf覆盖,当然复制时必须停止sql server!
 
I Agree with billst
 
我用手工运行.SQL的方法创建数据库,生成的文件为test_DATA.MDF和
test_LOG.LDF,但是:
在程序里面创建表的结构,生成的文件为test.MDF和test_LOG.LDF,
我把原来备份的文件改名为test.MDF和test_LOG.LDF后将其覆盖,
结果再运行SQL SERVER说数据库不对.......
 
好象不行吧!?自建的数据库有部分信息记录于MASTER数据库中的,单靠那两个文件恐怕
不能直接恢复罢?
 
在 query analyzer 里执行以下语句:
exec sp_attach_db @dbname=N'mmmm',
@filename1=N'路径/mmmm.mdf',
@filename2=N'路径/mmmm.ldf'

附注:MMMM 为数据库名称,路径为:SQL 的路径,如:c:/mssql7/data/
 
同意wys205和gototop的说法。
SQL Server 7.0已经支持直接拷贝文件的备份和恢复了。
 
在查询分析器中写:
EXEC sp_attach_db 'databasename', 'c:/mssql7/data/databasename.mdf','C:/mssql7/data/databasename_log.ldf'

 
我试验了一下,是正确的.
但是一旦原来的数据库存在,就会出现"数据库存在"的错误,
无法将其覆盖.
那么在.SQL里面怎么删除数据库呢?
 
用billst 的方法,我遇到如下错误提示:?
An error occurred while trying to access the database information.
 
to cw2: drop database 数据库名

 
新建一个database,与你的database同名,然后copy 覆盖。
 
先建一个同名库,再Sp_dettach_db ,再Sp_attach_db 你的库
 
同意zzz^^^的说法,我也一真这样对客户使用的,效果很好,只在SQL7.0及以上有效。
 
后退
顶部