【发布时间】: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