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 客户特定要求的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server 2012 SSDT 解决方案中引用 CLR 项目
sql express 2012 on vs 2010 with ssdt not working