如何将SQL Server中数据库转到另一台机器中
编号:QA003186
建立日期: 2000年7月20日 最后修改日期:2003年12月6日
所属类别:
Q
程海:
操作系统:win98/NT
编程工具:SQL Server
问题:在我本机的SQL Server中有一个数据库testdb,现在我想将此库转到另一台机器的SQL Server中(两台机器并没有通过网络连在一起),该如何实现?我曾试过将testdb.mdf及testdb.LDF复制到另一台机器中进行恢复,但没有成功,不知是何缘故。希望提供至少两种方法,且叙述的尽可能详细。谢谢!
水平: 刚入门
A回答:
如果你使用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。
| |
|
|
| |
|
|