在我的数据库项目中,我添加了对链接服务器的引用。当我在视图中使用此链接服务器并尝试构建我的数据库项目时,SSDT报告错误,因为它无法理解对链接服务器上引用的任何模式的引用:
[LinkedServer].[DB1].[dbo].[Table1]
上面会返回一个错误,SSDT无法解读对[DB1].[dbo].[Table1]
的引用。我尝试添加对此数据库的引用,但SSDT需要.dacpac
文件(由另一个数据库项目生成)或与我项目中的数据库在同一服务器上的系统数据库。
如何处理引用外部数据库?在某些情况下,项目需要引用不 SSDT数据库项目的远程数据库。就我而言,我正在访问另一家公司的数据库并将此数据库置于版本控制之下,因为SSDT项目是不可能的。
答案 0 :(得分:13)
为远程数据库创建一个新的SQL项目,将任何对象放在需要引用的项目中(不必是整个数据库),然后将该项目作为数据库引用添加到项目中。您不必部署远程数据库,只需定义您使用的对象即可引用它们。
答案 1 :(得分:4)
我们最终确定的选项是使用SSIS导入数据。这样,远程数据的传输发生在ETL层中。我们的数据库没有以这种方式引用任何远程数据库,这也可以提高性能(消除通过网络的传输,跨服务器连接等)。
我建议使用SSIS或类似的方法将数据ETL到数据库项目可以引用的本地表中(无需外部项目引用)。