我想知道我对复制SQL Server数据库的选择是什么。如果这是重复,我将删除我的问题,但在使用搜索时找不到答案。
这是我已经尝试过的:
- 将数据库写入sql脚本。
当我这样做时,我似乎总是遇到一个问题,我必须手动调整东西。像密钥或整理冲突的问题一样。
这似乎也很慢。我的上一个脚本文件是1.5Mb,但运行时间为1小时。在90%时遇到错误也很烦人。
我主要是使用sql脚本工作,但感觉我浪费了大量时间来修复小错误并等待sql执行。
- 在Microsoft SQL Server Management Studio上使用导出功能
如果我是正确的,这不会复制存储过程,视图和/或密钥。
-Detach / Attach
认为在只有一个数据库的共享主机上这通常是不可能的,这是正确的吗?尝试这个时我遇到了许可问题。
这就是我尝试过的一切。
提前致谢,
Pickels
答案 0 :(得分:5)
我发现最简单的方法是使用“备份/还原”选项。备份数据库,将文件复制到新服务器,然后执行还原。您需要首先在第二台服务器上创建一个空白数据库,但不需要定义任何表或任何内容。然后,右键单击新的空白数据库,并从第一台服务器上备份的文件中选择“还原和还原”。
执行还原时,如果原始数据库文件存储在新服务器上不存在的路径中,或者您要还原到某个路径,则可能需要转到“选项”页面并设置“还原为”路径。不同的位置。默认情况下,它会尝试将数据库还原到与原始服务器上相同的路径。
答案 1 :(得分:5)
这取决于您的托管服务提供商允许的内容。一些允许附加/恢复,一些不允许,一些允许它但按事件收费。即使允许,数据库版本也是极其重要的,因为引擎能够升级数据库,但它无法降级版本,因此您的开发版本最多只能是提供者的版本,而不是更新版本。
但最终这是一个发展过程的问题。您永远不应该通过修改数据库来开发,而是创建保持在源代码管理下的脚本,以应用任何应用程序架构更改(包括所有过程和所有目录数据)。应用程序应该能够从这些脚本升级数据库模式,包括初始部署。我的建议是在扩展属性中使用应用程序定义的版本,并使用脚本来更新应用程序模式版本:Version Control and your Database。
但是现在猫已经不在了,你已经做了不好的练习,你最好的选择是一个很好的第三方脚本/比较工具,比如SQL Compare。
答案 2 :(得分:3)
如果要迁移到MS SQL Server 2008,可以选择“复制数据库”,您可以选择复制所有或选定的数据库。
右键单击数据库 - >任务 - >复制数据库。完成向导并选择“分离和附加”方法或“SQL管理方法”(如果您希望数据库保持在线状态)。
但请注意,这只适用于目标SQL是MsSQL 2008的情况。
答案 3 :(得分:0)
尝试完整备份和恢复。
答案 4 :(得分:0)
尝试DBSourceTools。 http://dbsourcetools.codeplex.com
它的开源,专门用于编写整个数据库的脚本 - 表,视图,磁盘的触发器
然后,您需要做的就是创建一个部署目标
单击deploy - 该工具将数据库复制到新目标
通过使用SQL批量复制来上传数据,它可以在几秒钟内完成10000条记录。
玩得开心