syspolicy_policy_execution_history_details (Transact-SQL)
适用范围:SQL Server
显示执行的条件表达式、表达式目标、每次执行的结果以及有关出现的任何错误的详细信息。 下表介绍了 syspolicy_execution_history_details 视图中的列。
列名称 | 数据类型 | 描述 |
---|---|---|
detail_id | bigint | 此记录的标识符。 每个记录表示尝试计算或强制执行策略中的一个条件表达式。 如果应用于多个目标,每个条件将具有每个目标的详细记录。 |
history_id | bigint | 历史记录事件的标识符。 每个历史记录事件表示尝试执行一次策略。 由于条件可能具有几个条件表达式和几个目标,因此,history_id 可能会创建几条详细记录。 使用history_id列将此视图联接到 syspolicy_policy_execution_history 视图。 |
target_query_expression | nvarchar(max) | 策略目标和 syspolicy_policy_execution_history 视图。 |
execution_date | datetime | 此详细记录的创建日期和时间。 |
result | bit | 此目标和条件表达式计算成功或失败: 0(成功)或 1(失败)。 |
result_detail | nvarchar(max) | 结果消息。 仅当由方面提供时才可用。 |
exception_message | nvarchar(max) | 发生的异常所生成的消息。 |
异常 | 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 角色的成员身份。