我们正在使用Sql Server数据库项目使用SqlPackage.exe从DacPac创建部署脚本。我们在各种环境中设置了不同的SQL Server文件组。 在部署时,我们要排除文件组,因为我们希望在默认文件组中创建对象。在数据库项目设置中,默认文件组不会从PRIMARY更改。
尝试部署到默认文件组不 PRIMARY的环境时会出现问题,因为包含以下代码...
ALTER DATABASE [$(DatabaseName)]
MODIFY FILEGROUP [PRIMARY] DEFAULT;
有没有办法阻止在部署SQL中生成这个?
答案 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