我有一个数据库项目,它在几个视图和存储过程中使用链接服务器。
根据Microsoft的说法,Visual Studio 2010数据库项目并未明确支持链接服务器,但您可以使用References和SQLCMD变量来破解它: http://msdn.microsoft.com/en-us/library/bb386242.aspx
我的数据库(数据库本身)具有与Warehouse数据库的链接服务器连接。 Warehouse数据库项目存储在单独的Team Project Collection中。
有没有办法在我的项目中添加Warehouse项目作为参考?
答案 0 :(得分:1)
以下文章介绍了如何在数据库项目中使用引用变量。 http://msdn.microsoft.com/en-us/library/bb386242.aspx
当您引用不在同一解决方案中的数据库时,这是必要的(请参阅第一个图表,第二行)。
就我而言,我可能会为每个不同的业务环境(内部应用程序,外部应用程序,仓库等)提供单独的解决方案。每个解决方案都有几个数据库。但是数据库需要引用不在同一解决方案中的数据库(例如,内部数据库可能具有从外部数据库中提取数据的存储过程)。
在这种情况下,我认为最好的解决方案是引用构建项目时生成的.dbschema文件。您可以为每个项目配置每晚构建,并将构建输出复制到特定的共享驱动器位置。然后,您可以通过将数据库引用(在上面的文章中描述)添加到数据库的.dbschema(在共享驱动器上),将任何数据库项目指向任何其他数据库的模式。
如果您想使其更复杂,您可以修改构建模板,将必要的.dbschema文件从构建输出复制到每个项目中并检入它们。
如果数据库没有项目且未进行主动更改,则需要为数据库创建临时数据库项目,以便构建.dbschema文件。然后可以将已构建的.dbschema文件签入到依赖项目中,除非更改,否则不必再次生成它。
我会尽力做一个例子......
<强>问题强>: 项目ABC取决于数据仓库和项目XYZ。项目XYZ在不同的解决方案下处于源代码管理中,但仓库不在源代码管理中。
<强>解决方案强>:
我不知道它是否会像那样起作用,但这就是理论。希望它有所帮助...