次の方法で共有


syspolicy_policy_execution_history_details (Transact-SQL)

適用対象: SQL サーバー

実行された条件式、式のターゲット、各実行の結果、発生した場合のエラーの詳細を表示します。 次の表では、syspolicy_execution_history_details ビューの列について説明します。

列名 データ型 説明
detail_id bigint このレコードの識別子。 各レコードは、ポリシー内の 1 つの条件式を評価または適用しようとする試みを表します。 複数の対象に適用された場合、条件ごと、対象ごとに明細レコードが作成されます。
history_id bigint 履歴イベントの識別子。 各履歴イベントは、ポリシーを実行しようとする 1 つの試行を表します。 条件には複数の条件式や複数の対象が含まれる場合があるため、1 つの history_id に対して複数の詳細レコードが作成されることもあります。 history_id列を使用して、このビューを syspolicy_policy_execution_history ビューに結合します。
target_query_expression nvarchar(max) ポリシーおよび syspolicy_policy_execution_history ビューの対象。
execution_date datetime この詳細レコードが作成された日時。
結果 bit この対象と条件式の評価が成功したか失敗したかを表します。

0 (成功) または 1 (失敗)。
result_detail nvarchar(max) 結果メッセージ。 ファセットによって提供される場合にのみ使用できます。
exception_message nvarchar(max) 例外が発生した場合に、例外によって生成されたメッセージ。
exception nvarchar(max) 例外が発生した場合の説明。

解説

ポリシー ベースの管理のトラブルシューティングを行うときは、syspolicy_policy_execution_history_details ビューにクエリを実行して、失敗したターゲットと条件の式の組み合わせ、失敗したタイミングを判断し、関連するエラーを確認します。

次のクエリでは、 syspolicy_policy_execution_history_details ビューと syspolicy_policy_execution_history_details ビューと syspolicy_policies ビューを組み合わせて、ポリシーの名前、条件の名前、エラーの詳細を表示します。

SELECT Pol.name AS Policy,   
Cond.name AS Condition,   
PolHistDet.target_query_expression,   
PolHistDet.execution_date,   
PolHistDet.result,   
PolHistDet.result_detail,   
PolHistDet.exception_message,   
PolHistDet.exception   
FROM msdb.dbo.syspolicy_policies AS Pol  
JOIN msdb.dbo.syspolicy_conditions AS Cond  
    ON Pol.condition_id = Cond.condition_id  
JOIN msdb.dbo.syspolicy_policy_execution_history AS PolHist  
    ON Pol.policy_id = PolHist.policy_id  
JOIN msdb.dbo.syspolicy_policy_execution_history_details AS PolHistDet  
    ON PolHist.history_id = PolHistDet.history_id  
WHERE PolHistDet.result = 0 ;  

アクセス許可

msdb データベースの PolicyAdministratorRole ロールのメンバーシップが必要です。

ポリシー ベースの管理を使用したサーバーの管理
ポリシーベースの管理ビュー (Transact-SQL)