Sql-Server

Visual Studio SSDT 忽略發布配置文件中的查詢儲存選項

  • November 30, 2018

Visual Studio SSDT 發布配置文件中是否有任何方法可以完全忽略查詢儲存選項?

它一直要求我們在下面重新執行發布程式碼。我轉到數據庫高級設置,然後將其關閉。即使在它啟動之後,它仍然要求在發布配置文件中。有什麼方法可以忽略發布配置文件中的查詢儲存,而不是嘗試將其關閉?

我正在查看發布配置文件中的高級選項。

在此處輸入圖像描述

BEGIN
   ALTER DATABASE [$(DatabaseName)]
       SET QUERY_STORE (QUERY_CAPTURE_MODE = NONE, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367)) 
       WITH ROLLBACK IMMEDIATE;
END

似乎沒有辦法忽略單個數據庫屬性。但是,您可以通過將以下內容添加到您的發布配置文件 XML 文件來忽略它們:

<ScriptDatabaseOptions>False</ScriptDatabaseOptions>

我已經對此進行了測試,它確實遺漏了這些QUERY_STORE陳述。

然後,如果您確實想要設置任何數據庫級別的屬性,您可以通過添加到項目並標記為PostDeploy在文件屬性中的 Post Deploy SQL 腳本手動添加它們,在“建構操作”下屬性下拉。

您還可以將該 XML 元素添加到您的**.sqlproj文件或.sqlproj.user**文件中。

無論您將其放入三個文件中的哪個文件,此選項都需要放在 a<PropertyGroup>中。它們中的項目的順序<PropertyGroup>...</PropertyGroup>無關緊要。

如果您只是生成“創建”或“發布”SQL 腳本並且沒有立即部署它,另一種選擇是使用實用程序查找這兩SET QUERY_STORE...行並將其替換為以下內容:

SET {some other DB property} = {its current setting}; --

例如:

SET TRUSTWORTHY OFF; -- 

這應該導致這兩行變成:

SET TRUSTWORTHY OFF; -- (QUERY_CAPTURE_MODE = NONE, ...

您可能想查看以下基於 dos 的 RegEx 處理器:

JREPL.BAT - 支持 Unicode 和 XRegExp 的正則表達式文本處理器

引用自:https://dba.stackexchange.com/questions/221485