有没有办法在部署脚本中停止SqlPackage.exe设置默认文件组?

时间:2017-02-28 01:41:13

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

我们正在使用Sql Server数据库项目使用SqlPackage.exe从DacPac创建部署脚本。我们在各种环境中设置了不同的SQL Server文件组。 在部署时,我们要排除文件组,因为我们希望在默认文件组中创建对象。在数据库项目设置中,默认文件组不会从PRIMARY更改。

enter image description here

尝试部署到默认文件组 PRIMARY的环境时会出现问题,因为包含以下代码...

ALTER DATABASE [$(DatabaseName)]
    MODIFY FILEGROUP [PRIMARY] DEFAULT;

有没有办法阻止在部署SQL中生成这个?

2 个答案:

答案 0 :(得分:1)

在SQL Server Management Studio中从SSDT生成dacpac文件时,您无法选择提取到dacpac的对象类型。

但是当你通过命令行运行sqlpackage.exe时,你可以使用一个参数。

sqlpackage.exe your_deploy_options / p:ExcludeObjectTypes = Filegroups

这将忽略文件组的部署。 有关完整选项,请参阅此参考:https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx

如果您有Visual Studio,那么您可以将数据库导入为VS中的数据库项目,并从脚本中删除文件组,因此在部署/比较模式时,它们不会被比较。

答案 1 :(得分:0)

我不知道你是否可以在SSDT中禁用它。

但您可以使用部署计划参与者过滤掉MODIFY FILEGROUP语句或以您希望的方式更改它。您可以在此处找到详细说明和工作代码:http://scardevblog.blogspot.com/2015/03/ssdt-generates-2012-option-for-target.html