1

我想使用 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,

PublicKeyToken=89845dcd8080cc91' 或其依赖项之一。系统找不到指定的文件。":"Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"

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

任何帮助将不胜感激!!

4

2 回答 2

1

我已经看到机器上的 SQL Server 2008 组件安装不完整 - 在这种情况下,只需前往Microsoft 的下载站点并获取Microsoft SQL Server 2008 Management Objects适当版本(x86 32 位或 x64)的(略低于中间) 64 位或 IA64 64 位 - 取决于您的需要)。

安装并重试。

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

于 2010-01-27T15:08:43.397 回答
0

我想到了几点,我认为这是需要考虑的事情:

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

  1. 保留整个数据库创建脚本并运行它们。恕我直言,无论如何,在源代码控制中这是一件好事
  2. 拥有数据库的干净(空)备份(本质上是模板副本),并将其还原为新数据库
于 2010-01-27T14:57:59.560 回答