SSDT中的部分数据库快捷方式

时间:2014-12-02 23:57:55

标签: sql-server visual-studio-2013 sql-server-data-tools

我认为这是不可能的,但要求以防万一。我在Visual Studio 2013解决方案中有两个数据库项目,而数据库Y大多只有数据库X中的表的快捷方式。在我将数据库X中的表A的定义添加到数据库X的定义之前,一切都运行良好。因为我将数据库X部署到SQL Server 2012企业并将数据库Y部署到SQL Server 2012 Standard,并且标准中不允许分区,后一部署失败。

有没有办法告诉数据库项目数据库Y忽略分区内容?关于如何在不使用快捷方式的情况下保持表同步的任何其他想法?

更新:这是错误。

  

创建[PartitionByReportFileID] ...(75,1):SQL72014:.Net SqlClient   数据提供者:消息7736,级别16,状态1,行2分区功能   只能在SQL Server的企业版中创建。只要   SQL Server企业版支持分区。 (74,0):   SQL72045:脚本执行错误。执行的脚本:CREATE   PARTITION FUNCTION PartitionByReportFileID       作为范围权利       FOR VALUES(90000000,12000000,140000000,160000000,180000000,2000000,220000000,240000000,260000000,28,000000,300000000,   320000000,340000000,360000000,380,000000,4000000,420000000,   440000000,460000000,48,000,000,5亿,520000000,5.40000000,   560000000,580000000,600000000);

     

批处理执行时发生错误。

1 个答案:

答案 0 :(得分:1)

UPD:嗯,这很可能,不过你可能不喜欢这种做法。

实际上,无论人们如何努力不允许,SSDT都会将与分区相关的内容包含在部署脚本中。另一种方法是创建一个空数据库,然后在项目(源)和该数据库(目标)之间执行模式比较。在架构比较设置中,确保在“常规”选项卡上设置了2个检查:

  • 忽略分区方案上的对象放置
  • 忽略分区方案

这适用于SSDT 2012,经过验证。从现在开始,您可以直接运行更新,也可以生成脚本,然后使用它进行部署,只需稍作修改(例如,如果需要,可以从标准部署脚本中添加数据库(重新)创建部分)。

此方法的唯一缺点是以前分区的表出现在默认文件组中,除非您更改它,否则通常为PRIMARY。那个,并且部署后的脚本功能并不包括在内(假设你有一个,当然)。