SSDT SQL Server数据工具客户特定要求

时间:2018-10-16 15:50:06

标签: sql-server sql-server-data-tools

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

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

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

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

我们应该如何处理?我想在这种情况下我们不应该一个人。

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

谢谢

伊夫忘了

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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