2010-01-27 90 views
1

我想使用C#将现有的SQL Server 2008数据库模式(而不是数据)复制到同一服务器上的新数据库(即MyDB => MyDB_Test)。如何通过C#代码复制SQL Server 2008数据库

我发现一些示例代码在http://www.codeproject.com/KB/cs/CopyDBSchemaUsingSMO.aspx,似乎做我想要什么,但它一直扔在ddatabase.Create()线以下错误:

Could not load file or assembly 'Microsoft.SqlServer.BatchParser, 
Version=9.0.242.0, Culture=neutral, 

PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.":"Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"

我试图寻找失踪的DLL,但我只能找到SQL Server 2005的一个版本。我不确定我是否应该使用它,寻找替代下载或采取完全不同的方法。

任何帮助将不胜感激!

回答

0

的几点春天在脑海中,我认为是需要考虑的事情:

这听起来像这不会是一次性的,但你想更多occassions做一些事情,所以我会建议:

  1. 保持整个数据库创建脚本并运行这些。恕我直言,这是源控件中有反正是好事
  2. 有数据库(模板复制本质上)的干净(空)备份和恢复,作为一个新的DB
1

我见过未完成的SQL Server 2008组件在计算机上的安装 - 在这种情况下,只需转到Microsoft's download site并在合适的版本(x86 32位或64位或IA64)中抓住Microsoft SQL Server 2008 Management Objects(稍低于中间位置) 64位 - 取决于您的需求)。

安装并重试。

您可能想要考虑的其他事情是购买和使用现有工具,而不是自己编写所有代码。查看例如Red-Gate的SQL Compare可以让你做到这一点 - 比较两个数据库(他们的结构),并确保他们都在同一水平。

+0

感谢您的快速回答。我现在就看看。至于我需要在代码中做到这一点,我需要它自动集成测试... – 2010-01-27 15:38:37

+0

我安装了管理对象,但仍然收到错误:“无法加载文件或程序集”Microsoft.SqlServer.BatchParser,版本= 9.0.242.0 ,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或它的一个依赖项。系统找不到指定的文件。“:”Microsoft.SqlServer.BatchParser,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91“ – 2010-01-27 15:43:54

+0

OK,odd - 你是否在你的硬盘上找到了一个“Microsoft.SqlServer.BatchParser.dll”文件? – 2010-01-27 15:56:25

相关问题