【问题标题】:How do I stop Database deploy from removing Server Triggers?如何阻止数据库部署删除服务器触发器?
【发布时间】:2015-10-28 11:32:16
【问题描述】:

我正在使用Visual-Studio 数据库项目和Publish 向导部署我的数据库。

初始部署工作正常,我的数据库与我的项目相同。然后我将第三方工具应用到我的数据库中,该工具将触发器添加到我的所有表中。

然后我将更新部署到我的数据库并从我的数据库中删除第三方触发器。

如何阻止我的部署删除服务器上但项目中没有的触发器?

我尝试在Advance Deployment Settings 中取消勾选“Drop DML triggers not in source”,但这没有奏效。

其他人有什么想法吗?

PS: 我正在使用Visual studio 2015

我的其余部署设置如下:

【问题讨论】:

  • 第二次部署是否重新创建表?
  • 另外,我在图片中看到一个名为“不要删除数据库触发器”的复选框,您是否尝试过检查?
  • @DavidG 我现在会仔细检查它是否重新创建表。由于某种原因,我无法检查灰色表中的任何这些属性
  • 或者您是否勾选了“始终重新创建数据库”?
  • @DavidG 我发现了问题。项目属性中的Deployment optionsPublish 对话框Deployment Options 不一致。可能是 2015 年的错误吗?会不会是我太笨了

标签: sql-server database visual-studio triggers database-project


【解决方案1】:

所以我发现了问题。

当我设置我的Advanced Deployment Properties 时,我是这样操作的:

  1. 右键单击数据库 - 属性
  2. 进入调试选项卡(文档中提到的 2015 年没有部署选项卡)
  3. 使用底部的“高级”按钮在此处更改我的部署选项。

然后我意识到,当我在我的项目上单击Publish 时,这里有一个Advanced 按钮。

单击Publish 对话框上的Advanced 按钮会显示与项目属性不同的选项。

我从这个屏幕上删除了Drop DML Triggers 检查并且它起作用了

除此之外。然后我点击Save Profile 并使用Add Existing Item 将其添加到我的项目中,然后我使用this answer 将此配置文件设置为我的默认发布配置文件

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多