热情软件屋

 

如何将SQL Server中数据库转到另一台机器中


编号:QA003186
建立日期: 2000年7月20日 最后修改日期:2003年12月6日
所属类别:

程海:
    操作系统:win98/NT
    编程工具:SQL Server
    问题:在我本机的SQL Server中有一个数据库testdb,现在我想将此库转到另一台机器的SQL Server中(两台机器并没有通过网络连在一起),该如何实现?我曾试过将testdb.mdf及testdb.LDF复制到另一台机器中进行恢复,但没有成功,不知是何缘故。希望提供至少两种方法,且叙述的尽可能详细。谢谢!
    水平: 刚入门

回答:

    如果你使用ms sql 7.0,你可以先建立一个空的testdb,然后把原来的testdb.mdf及 testdb.LDF覆盖新的同名文件,因该就可以了。(我次次成功)
    如果使用ms sql 6.5以下,还想使用这种方式的话,^_^,你要完全按照当时创建testdb的过程(包括大小,以后有扩充的空间...)建立一个空的testdb.总之,要和过去一模一样,当然,内容(table,view...)不需要添加。然后再覆盖,如果你运气好的话,你会成功的。(我只成功过2次)
    
    caijiong的意见:
    复制数据库文件时一定要保sqlserver的服务关掉!
    
    bono的意见:
    我自己编的SQL SERVER数据库的恢复程序fixsql.zip,执行即可。
    
    Daniel Xu的意见:
    先备份testdb,然后将备份文件拷到另一台机器上,在创建一个空数据库(大小要大于或等于原数据库,然后将备份文件恢复到该数据库即可。zflfly表示:我同意Daniel Xu的意见 。
    
    宁少的意见:
    先用企业管理器把你现在的数据库分离,然后COPY一份到目的机器,再在那台机器上用企业管理器把数据库附加上去就OK拉!
    具体操作:打开企业管理器,右键点击你要分离的数据库,然后在所有任务里选择"分离数据库",附加数据库类似操作就行了.
    
    仲夏的意见:
    使用系统存储过程:sp_attach_db进行恢复即可。
    
    kyspace的意见:
    用微软为MSDE提供的一个例子可以将SQLServer7的数据库文件从数据库中Detach掉,然后靠到另一台机器上再Attach到这台机器的数据库中。
    
    王永华的意见:
    建议: 1、如果既有MDB文件,又有LOG文件,则用存储过程
    EXEC sp_attach_db @dbname = N'pubs',
     @filename1 = N'c:\mssql7\data\pubs.mdf',
     @filename2 = N'c:\mssql7\data\pubs_log.ldf'
    如果只有一个MDB文件则:
    EXEC sp_detach_db @dbname = 'pubs'
    EXEC sp_attach_single_file_db @dbname = 'pubs',
     @physname = 'c:\mssql7\data\pubs.mdf'
    2、BACKUP出来后,在另一机器用RESTORE回去,记住选中OPTION页的FORCE项。
    以上两种方法,都要注意的是,两台机器的字符集要一样,忽略大小写的选择要一样,如果原数据库有用户,则要先在目标的机器上建立相同的用户,赋予相同的权限,再恢复,恢复后,将用户全部删除,包括每个数据库中USER的和SECURITY中的USER,然后再重新建立一遍,就肯定没有问题了。

此问题由郝立颖回答。

附加关键字:编程, 源程序, programming, source code, 其他语言, asm, vba, vbscript, 数据库, database, query

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio