将数据库从Denali CPT3复制到SQL 2008 R2

好吧,正式这个是搞乱了我的脑袋。 当我们的开发环境出现时,我有最糟糕的想法试用SQL服务器Denali CPT3。 它似乎没问题,所以我们使用并收集了一些数据库

现在我们有一个SQL 2008 R2的实例,并且在Denali实例上工作的团队希望切换到2008 R2。

我的任务是将数据库从Denali实例复制到2008 R2实例,但事实certificate这比我想象的要困难得多。 我试图使用mdf和ldf文件附加数据库,但它没有工作。 我试图从迪纳利备份,但没有奏效。 我试图导出/导入数据库,但没有奏效。 我试图复制数据库,但失败了。 唯一能做的工作似乎是在denali实例上生成脚本,并在2008 R2实例中运行它们,但是当我尝试为数据库的所有对象生成时,它却失败了。

我徘徊,如果有其他解决scheme可以工作,或者如果我已经尝试的解决scheme之一应该工作,我需要更多的关注它。 我开放的“疯狂”的解决scheme,如转移到MySQL或Oracle如果可能的话(甚至CSV或平面文件,任何可能的传输整个数据库)。

正如你发现的那样,你不能从这里到达–SQL服务器不能回滚数据文件。 假设你们没有使用2012特定的任何function或数据types,那么应该可以使用SSMS来生成SQL脚本,然后可以针对2008r2实例执行这些脚本。 即使在某些情况下它不起作用,你也得到了一个可修改的文本文件,你应该能够在目标上移动,而不是一个有严格要求的丑陋的二进制文件。

我还没有试过2012版的SSMS,但是在2008r2版本中你右键点击一个数据库并select生成脚本来启动向导。 确保检查“设置脚本选项”步骤中“高级”button下的选项。 如果SSMS内置的工具失败了,那么您可能需要查看RedGate的工具套件 – 他们有一些非常先进的“script my sql”选项。