SSDT SQL 服务器数据工具 客户特定要求

SSDT SQL Server Data Tools Customer specific requirements

我们正在使用 SQL 服务器数据工具 (SSDT) 来管理我们的客户数据库。

理论上所有的数据库都是相同的,但实际上我们有一些存储过程(和一个触发器)会随着客户的不同而发生变化。

我们为所有常见内容创建了一个主 SSDT,然后为每个客户创建了一个仅包含特定存储过程的 SSDT(没有 tables)。

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

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

数据库项目是否可以从另一个数据库项目引用对象(tables)?

谢谢,

伊夫忘记

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

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

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