SSDT 如何:部署 .dacpac 忽略目标上的放置列

SSDT How to: Deploy .dacpac ignoring drop columns on target

我在 Visual Studio 中使用数据库项目。

在我的场景中,我的客户直观地自定义了我为他们提供的数据库,例如在现有 table 中添加一些列,添加新的 table...

在部署 .dacpac 时,我如何才能不排除这些不属于我的模式的对象?

重要:

Set DropObjectsNotInSource=FALSE 不适用于 table 列。

编辑

Ed,请看我做错了什么:

using (DacPackage dacPackage = DacPackage.Load(DacPacFileName))
{
     var dacServices = new DacServices(ConnectionString);

     var dacOptions = new DacDeployOptions
     {
         AdditionalDeploymentContributorArguments = "SqlPackageFilter=KeepTableColumns(*)"
     };

     dacServices.Deploy(dacPackage, NomeBancoDados, true, dacOptions);
}

“*”是否在 table 过滤器 "ALL TABLES" 中?

我也试了一个 table 名字,但是没用。

我为这个场景写了这个:

https://agilesqlclub.codeplex.com

您可以 "Keep" 如果对象不存在则部署对象但如果有更改则不部署或 "Ignore" 完全忽略。

您可以对类型或名称(正则表达式)执行此操作

埃德