2016-09-16 76 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

相關問題