如何通过C#代码复制SQL Server 2008数据库

时间:2010-01-27 14:48:50

标签: sql-server sql-server-2008 smo

我想使用C#将现有的SQL Server 2008数据库架构而不是数据复制到同一服务器上的新数据库(即MyDB => MyDB_Test)。

我在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,
     

公钥= 89845dcd8080cc91'       或其中一个依赖项。系统找不到该文件       指定 “:” Microsoft.SqlServer.BatchParser,   版本= 9.0.242.0,       Culture = neutral,PublicKeyToken = 89845dcd8080cc91“

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

非常感谢任何帮助!!

2 个答案:

答案 0 :(得分:1)

我在机器上看到SQL Server 2008组件的安装不完整 - 在这种情况下,只需转到Microsoft's download site并抓住自己Microsoft SQL Server 2008 Management Objects(略低于中间位置)适当的版本(x86 32位,或x64 64位或IA64 64位 - 取决于您的需要)。

安装并重试。

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

答案 1 :(得分:0)

我想到的一些问题需要考虑:

听起来这不是一次性的,而是你想在更多场合做的事情,所以我建议:

  1. 保留整个数据库创建脚本并运行它们。恕我直言,无论如何都要在源代码管理中做好事
  2. 拥有数据库的干净(空)备份(本质上是模板副本),并将其还原为新数据库