【问题标题】:Tool to copy SQL Server 2008 db to SQL Server 2008 Express?将 SQL Server 2008 db 复制到 SQL Server 2008 Express 的工具?
【发布时间】:2010-12-14 06:54:53
【问题描述】:

我有一个典型的开发场景:我有一个 SQL 2008 数据库,我想经常将它复制到我的本地 2008 Express 实例,以便我可以对本地副本进行开发、更改等。不过我有一些限制:源数据库是共享主机中实时电子商务网站的一部分,因此我无法将其分离,并且托管服务希望我为调用的每个临时备份支付 5 美元。

我想要一些工具,我可以临时调用它来拍摄实时数据库的快照(完整,而不是增量),然后我可以将其导入本地数据库。我已经尝试过 SSMS 2008 复制数据库向导,但它给了我一个错误,说我不能用 Express 做到这一点。我尝试了 Generate Scripts 工具,并认为这会成功 - 导出到我的本地磁盘有效,但是当我使用 SQLCMD 导入时(脚本是 1GB,所以当我尝试在那里打开它时 SSMS 出错),它告诉我有几千行的语法错误。

来自 MySQL 世界,这个过程是微不足道的。我想要的只是 mysqldump 的模拟,然后是将该文件导入数据库的命令行方式。在 SQL Server 世界中肯定有一种简单的方法可以做到这一点吗?这似乎是开发人员最基本的用例。

[ 是的,我在这里看到了其他一些看起来相似的问题,但我认为它们没有相同的限制。 ]

【问题讨论】:

  • 如果您可以双击错误,它应该会显示问题所在。如果您将其粘贴到您的问题中,您可能会发现修复问题将允许您正在处理的整个 sql 文件完成。
  • 可能并不完全有帮助,但我不禁认为您需要查看您的托管...这表示我很欣赏人们在这方面经常不得不妥协。
  • Murph - 这是 CrystalTech,我的客户很久以前就选择了它们,而不是我。我确实认为即使他们每天自己做备份,他们也会收取 5 美元的备份费用,这很奇怪。为什么不同时给我一份。哦,好吧。
  • 昨天我有更多的时间来讨论这个问题。我通过将脚本文件转储到每个对象的文件来进行实验。现在有些小到可以带入 SSMS。在通过 SQLCMD 导入之前,我拿了一张有错误的表,将其加载到 SSMS 中的查询窗口中并执行它,瞧,这行得通。因此,至少 SSMS 可以正确读取它生成的相同脚本。我很好奇 SQLCMD 出了什么问题,但真正的问题是,如果我的文件太大而 SSMS 无法打开,我怎样才能让它在执行时将它们流式传输?我有很多打不开的大桌子

标签: sql-server sql-server-2008 sql-server-express mysqldump ssms


【解决方案1】:

试试SQL Dumper

SQL Server Dumper 使您能够将选定的 SQL Server 数据库表转储到 SQL INSERT 语句中,这些语句保存为本地 .sql 文件并包含创建重复表所需的所有数据,或用于备份目的。您可以选择为每个表创建单独的 .sql 文件,或将所有选定的表合并到一个文件中。

【讨论】:

  • 但是如果他有一些无效数据,SQL Dumper 不会以同样的方式反应,抛出错误吗?
  • 也许 sql-dumper 会产生更好的转储。他可以试一试。
【解决方案2】:

SQL Server Database Publishing Wizardosql 通常可以为我解决大型数据库问题。

【讨论】:

  • 嗯,发布向导项目似乎死了。当我尝试安装它时,它声称我需要安装 2005 管理对象。我去安装 2008 的,但那个安装程序说我已经安装了它们。所以在他们更新它以知道 2008 存在之前,我无法安装它。
【解决方案3】:

如果他们不向您收取对数据库运行查询的费用,这些工​​具可能会有所帮助。当然,这些不是免费工具,但在很多方面都很方便,值得购买。这些工具可以区分您的源数据库和目标数据库,无论是数据还是结构,或者只是其中一种,并且可以选择同步目标数据库,使其与源数据库一样。

http://www.innovartis.co.uk/ http://www.red-gate.com/products/sql%5Fdata%5Fcompare/index.htm

【讨论】:

  • 最后,我选择了 Red Gate 的 SQL 数据比较。我快速设置项目,从命令行编写脚本,以便我可以在任务管理器中设置它以每天运行 - 问题解决了。 SQL Server 不像 MySQL 那样简单,而且我不得不花钱,这仍然是一个拖累。
【解决方案4】:

最佳答案:完整备份、恢复,支付 5 美元。在我看来,其他任何事情都会浪费超过 5 美元的时间。

【讨论】:

  • 公平点,我已经考虑过了。我的临时更新可能是每月一次或最多每两周一次,所以 5 美元不是一个炫耀的东西。我想我坚持编写脚本的想法是因为它让我感到恼火的是,似乎没有明显的工具。
猜你喜欢
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多