web-dev-qa-db-ja.com

Visual Studio SSDTが発行プロファイルのクエリストアオプションを無視する

Visual Studio SSDT Publish Profileで、クエリストアオプションを完全に無視する方法はありますか?

以下のパブリッシュコードを再実行するように求め続けます。データベースの詳細設定に移動し、オフにします。それが始まった後でも、それはパブリッシュプロファイルにいることを求め続けます。パブリッシュプロファイルでクエリストアを単に無視するのではなく、無視する方法はありますか?

パブリッシュプロファイルの詳細オプションを調べています。

enter image description here

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

個々のデータベースプロパティを無視する方法がないようです。ただし、以下をパブリッシュプロファイルXMLファイルに追加することで、それらすべてを無視できます。

<ScriptDatabaseOptions>False</ScriptDatabaseOptions>

私はこれをテストしましたが、実際にQUERY_STOREステートメントを省略しています。

次に、設定したいデータベースレベルのプロパティがある場合、プロジェクトに追加され、ファイルプロパティでPostDeployとタグ付けされたポストデプロイSQLスクリプトを使用して、手動でそれらを追加できます。 [ビルドアクション]プロパティドロップダウン。

そのXMLエレメントを。sqlprojファイルまたは。sqlproj.userファイルに追加することもできます。

このオプションは、3つのファイルのどれを配置したかに関係なく、<PropertyGroup>内に配置する必要があります。<PropertyGroup>...</PropertyGroup>内の項目の順序は関係ありません。

「作成」または「パブリッシュ」SQLスクリプトを生成するだけで、すぐにデプロイしない場合の別のオプションは、ユーティリティを使用して2つのSET QUERY_STORE...行を検索し、次のようなものに置き換えることです。

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

例えば:

SET TRUSTWORTHY OFF; -- 

これにより、これらの2つの行が次のようになります。

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

次のdosベースのRegExプロセッサを調べてください。

JREPL.BAT-UnicodeおよびXRegExpをサポートする正規表現テキストプロセッサ

0
Solomon Rutzky