13

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

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

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

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

4

2 回答 2

15

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

于 2013-04-05T03:12:38.937 回答
4

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

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

于 2013-04-05T15:35:43.157 回答