SSDT SQL Server Data Tools 客户特定要求

Posted

技术标签:

【中文标题】SSDT SQL Server Data Tools 客户特定要求【英文标题】:SSDT SQL Server Data Tools Customer specific requirements 【发布时间】:2018-10-16 15:50:06 【问题描述】:

我们正在使用 SQL Server Data Tools (SSDT) 来管理我们的客户数据库。

理论上所有数据库都是相同的,但实际上我们有一些存储过程(和一个触发器)会从一个客户更改为另一个客户。

我们为所有常见的事物创建了一个主 SSDT,然后为每个客户创建了一个 SSDT,其中仅包含特定的存储过程(无表)。

在特定的 SSDT 中,我们会收到警告,因为 SSDT 找不到存储过程中引用的表,但我们可以忍受(显然 SSDT 将无法验证表的字段,因为它找不到桌子)。对于触发器,我们得到一个错误(找不到表),因此数据库项目没有编译。

我们应该如何管理它?我想我们不应该在这种情况下孤军奋战。

数据库项目有没有办法从另一个数据库项目中引用对象(表)?

谢谢,

伊夫忘了

【问题讨论】:

【参考方案1】:

Daniel N 给出了正确的方向,我只是解释一下。假设您有一个名为DatabaseA 的数据库项目,它将包含与每个客户100% 匹配的唯一对象。然后创建另一个数据库项目DatabaseB 并将DatabaseA 包含为“相同的实例,相同的数据库”。在数据库DatabaseB 中,您可以添加客户特定的对象。然后您可以以类似的方式为其他客户创建其他数据库。

【讨论】:

【参考方案2】:

在 SSDT 中,您可以添加另一个数据库项目或 dacpac 作为参考。 在引用项目的属性中,您将能够设置引用数据库所在的位置、同一服务器同一数据库、同一服务器差异数据库等

https://msdn.microsoft.com/en-us/library/jj684584%28v=vs.103%29.aspx?f=255&MSPPError=-2147217396

【讨论】:

以上是关于SSDT SQL Server Data Tools 客户特定要求的主要内容,如果未能解决你的问题,请参考以下文章

安装SSDT2017

在 SQL Server 2012 SSDT 解决方案中引用 CLR 项目

sql express 2012 on vs 2010 with ssdt not working

为啥数据库(SQL)安装完后没有快捷启动图标?是否server和Tool都要装?

SQL命令未返回任何列信息。 SSDT

带有 dacpac 参考的 SSDT 未解析参考