0

我们有两个数据库,A 和 B。A 包含也应该部署到 B 的表;但是,应始终将 A 视为这些表的主控表。我们不想复制模式对象脚本。我们不想简单地从 B 中引用 A 的表——它们需要是单独的、重复的表。

据我所知,有两种方法可以实现这一点:

  1. 部分项目:将共享模式对象导出到部分项目(.files)文件中,并将其导入到 B 的数据库项目中

  2. 将共享模式对象文件作为链接添加到 B 的数据库项目中。

这些都有一个缺点,您需要显式指定文件 - 您不能指定文件夹,这意味着任何时候需要共享的模式对象被添加到 A 的数据库项目中,然后需要再次运行部分项目导出,或者新文件添加为 B 项目的链接。

这些技术的优点和缺点是什么?有没有更好的方法来实现我可能错过的目标?谢谢。

4

1 回答 1

0

VS2012 RC 版本不支持部分项目,这让我觉得我不应该使用它们。此外,似乎SQL Server Data Tools (SSDT)中的复合项目可能是长期解决方案。

我发现可以通过手动编辑 dbproj 文件来链接到整个文件夹。例如:

<Build Include="..\SourceDatabase\Schema Objects\Tables\*.sql">
  <SubType>Code</SubType>
  <Link>Schema Objects\Tables\%(FileName).sql</Link>
</Build>

这非常有效,因此在我们评估 SSDT 之前,它将是我们的首选解决方案。到目前为止,我发现它的主要缺点是它将包含源数据库文件夹中的所有文件,包括源数据库项目中未包含的文件。

于 2012-08-01T16:33:53.683 回答