Database Sqlprojects:引用其他未编译数据库的存储和视图

Database Sqlprojects:引用其他未编译数据库的存储和视图,database,visual-studio-2010,sql-server-2012,data-warehouse,sql-server-data-tools,Database,Visual Studio 2010,Sql Server 2012,Data Warehouse,Sql Server Data Tools,我有一个用于数据仓库的数据库,其视图的目标是超过1db 因此,在使用qa和dev数据库升级生产之后,我制作了一个Sqlproject,以允许我的团队使用ssdt以及它提供的所有自动工具 但是当我试图编译它时,它抛出了很多“我没有得到对其他数据库的引用”错误 THIS_VIEW.sql(30,27):错误:SQL71561:VIEW:[dbo]。[THIS_VIEW]具有 对对象[OTHER_DB].[dbo].[MYTABLE].[FOO]的未解析引用 THIS_VIEW.sql(31,25):

我有一个用于数据仓库的数据库,其视图的目标是超过1db

因此,在使用qa和dev数据库升级生产之后,我制作了一个Sqlproject,以允许我的团队使用ssdt以及它提供的所有自动工具

但是当我试图编译它时,它抛出了很多“我没有得到对其他数据库的引用”错误

THIS_VIEW.sql(30,27):错误:SQL71561:VIEW:[dbo]。[THIS_VIEW]具有 对对象[OTHER_DB].[dbo].[MYTABLE].[FOO]的未解析引用

THIS_VIEW.sql(31,25):错误:SQL71561:VIEW:[dbo]。[THIS_VIEW]具有 对对象[OTHER_DB].[dbo].[MYTABLE].[BAR]的未解析引用

THIS_VIEW.sql(32,4):错误:SQL71561:VIEW:[dbo]。[THIS_VIEW]具有 对对象[OTHER_DB].[dbo].[MYTABLE].[BAZ]的未解析引用

THIS_VIEW.sql(33,4):错误:SQL71561:VIEW:[dbo]。[THIS_VIEW]具有 对对象[OTHER_DB].[dbo].[MYTABLE].[QUX]的未解析引用


如何解决此问题?

您需要向项目中添加一些数据库引用。为此,我通常为“Other_DB”数据库创建一个dacpac,将其放在所有数据库项目都可以访问的位置(通常是解决方案上一级的文件夹),并添加一个数据库引用,而不选择使用变量作为数据库名

我在我的博客上写到:


如果VS/SSDT不起作用,可以使用SQLPackage从现有数据库中提取dacpac。我使用GUI工具创建dacpac文件的成功率参差不齐。

Peter,我将对此进行测试,在您的博客上做得很好,请继续在SSDT上发布!实际上,我正在尝试建立一个基于SSDT的生命周期,但在数据加密和部署方面也遇到了一些问题。我应该在UAT、生产和开发环境上设置不同的键。这听起来很像你在上一篇文章中所做的工作,但我是这项技术的新手,所以我将在推断如何做我需要的事情上做很多艰苦的工作。如果您有一个新条目的计划,请考虑在DACPAC部署上编写一个在每个EnV上使用不同字段加密的方法(对于相同的字段)。继续前进!我会看看我能做些什么,但我们现在不打算使用SQL数据加密。我想你可以用部分项目来做这件事——用一个主项目来处理所有未加密的内容,用不同的项目来处理包含加密列的对象。您应该将主项目包括在子项目中,并部署这些子项目。杰米·汤姆森在博客中写道: