我是否需要SQL Server数据库项目中链接服务器的数据库引用?

时间:2013-01-31 21:12:20

标签: sql sql-server visual-studio visual-studio-2012 sql-server-data-tools

在我的数据库项目中,我添加了对链接服务器的引用。当我在视图中使用此链接服务器并尝试构建我的数据库项目时,SSDT报告错误,因为它无法理解对链接服务器上引用的任何模式的引用:

[LinkedServer].[DB1].[dbo].[Table1]

上面会返回一个错误,SSDT无法解读对[DB1].[dbo].[Table1]的引用。我尝试添加对此数据库的引用,但SSDT需要.dacpac文件(由另一个数据库项目生成)或与我项目中的数据库在同一服务器上的系统数据库。

如何处理引用外部数据库?在某些情况下,项目需要引用 SSDT数据库项目的远程数据库。就我而言,我正在访问另一家公司的数据库并将此数据库置于版本控制之下,因为SSDT项目是不可能的。

2 个答案:

答案 0 :(得分:13)

为远程数据库创建一个新的SQL项目,将任何对象放在需要引用的项目中(不必是整个数据库),然后将该项目作为数据库引用添加到项目中。您不必部署远程数据库,只需定义您使用的对象即可引用它们。

答案 1 :(得分:4)

我们最终确定的选项是使用SSIS导入数据。这样,远程数据的传输发生在ETL层中。我们的数据库没有以这种方式引用任何远程数据库,这也可以提高性能(消除通过网络的传输,跨服务器连接等)。

我建议使用SSIS或类似的方法将数据ETL到数据库项目可以引用的本地表中(无需外部项目引用)。