2016-09-16 80 views
2

因此,我们试图在我们的数据库上实现DDL触发器来跟踪我们的开发人员的DDL更改,并且工作得很好。但是,我们遇到了与Visual Studio 2013/2015开发人员的困扰。当他们从Visual Studio中编辑表/ proc /任何东西时,它将禁用ddl触发器,进行更改并重新启用触发器,这会使触发器毫无意义。如何自定义由Visual Studio生成的SQL脚本

我发现我可以创建一个SQL数据库项目,导航到项目>属性>调试>高级,并取消选中“禁用和重新启用DDL触发器”。此设置存储在Project.SQLProj.User文件中。脚本将停止在禁用/启用触发器部分添加。

但是,当开发人员只需进入服务器资源管理器/ SQL Server对象资源管理器并以这种方式拉起数据库表时,无论何时他们进行更改并运行“更新”并生成脚本,都会看到“禁用” /在脚本中重新启用ddl触发器语句。我已经梳理了视觉工作室帮助文件,谷歌机器人,我们的本地VS大师,而且似乎没有人知道这些动态/非项目范围脚本的设置在哪里。任何帮助,将不胜感激。

+0

如果您正在使用数据库项目并对版本控制进行更改,那么您已经在跟踪更改。 DDL触发器起什么作用? –

+0

这就是问题所在。我们没有使用数据库项目。这是我发现改变脚本设置的唯一地方,但它始终只限于特定的项目/解决方案。我们使用链接的服务器相当多,而且SSDT与我们发现的它们并不一致。 – BeardOfTriumph

+0

“脚本设置”是什么意思? –

回答

0

韦尔普,我找到了一个解决方法的问题。我仍然无法让Visual Studio默认禁用触发器,但我通过创建服务器级DDL触发器来解决它。

服务器级DDL触发器将审计服务器和数据库DDL,并且在VS发出禁用数据库ddl触发器语句时不会被禁用。

3

当您发布以下选项时使用。我不知道影响的。用户文件中的设置有

  • 如果您使用的发布对话窗口然后点击高级,然后取消选择

    Disable And Reenable Ddl Triggers 
    
  • 如果您使用的是发布配置文件类似yourDb.publish.xml则广告给你的文件

    <DisableAndReenableDdlTriggers>False</DisableAndReenableDdlTriggers> 
    
  • 如果您正在干什么克这种使用SQLPackage.exe你也可以指定/p:DisableAndReenableDdlTriggers=false

相关问题