Partager via


sp_syspolicy_delete_policy_execution_history (Transact-SQL)

S'applique à : SQL Server

Supprime l'historique d'exécution pour les stratégies dans la Gestion basée sur des stratégies. Vous pouvez utiliser cette procédure stockée pour supprimer l'historique d'exécution pour une stratégie particulière ou pour toutes les stratégies, et pour supprimer l'historique d'exécution avant une date spécifique.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_syspolicy_delete_policy_execution_history
    [ @policy_id = ] policy_id
    , [ @oldest_date = ] 'oldest_date'
[ ; ]

Arguments

[ @policy_id = ] policy_id

Identificateur de la stratégie pour laquelle vous souhaitez supprimer l’historique d’exécution. @policy_id est int et est obligatoire. Peut être NULL.

[ @oldest_date = ] 'oldest_date'

Date la plus ancienne pour laquelle vous souhaitez conserver l’historique d’exécution de stratégie. Tout historique d'exécution antérieur à cette date est supprimé. @oldest_date est datetime et est obligatoire. Peut être NULL.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

Vous devez exécuter sp_syspolicy_delete_policy_execution_history dans le contexte de la msdb base de données système.

Pour obtenir des valeurs pour @policy_id et afficher les dates d’historique d’exécution, vous pouvez utiliser la requête suivante :

SELECT a.name AS N'policy_name',
    b.policy_id,
    b.start_date,
    b.end_date
FROM msdb.dbo.syspolicy_policies AS a
INNER JOIN msdb.dbo.syspolicy_policy_execution_history AS b
    ON a.policy_id = b.policy_id;

Le comportement suivant s’applique si vous spécifiez NULL une ou les deux valeurs :

  • Pour supprimer l’historique d’exécution de la stratégie, spécifiez NULL à la fois pour @policy_id et pour @oldest_date.

  • Pour supprimer l’historique d’exécution de stratégie pour une stratégie spécifique, spécifiez un identificateur de stratégie pour @policy_id et spécifiez NULL comme @oldest_date.

  • Pour supprimer l’historique d’exécution de stratégie pour toutes les stratégies avant une date spécifique, spécifiez NULL @policy_id et spécifiez une date pour @oldest_date.

Pour archiver l’historique d’exécution de stratégie, vous pouvez ouvrir le journal de l’historique des stratégies, dans l’Explorateur d’objets et exporter l’historique d’exécution dans un fichier. Pour accéder au journal d’historique des stratégies, développez Gestion, cliquez avec le bouton droit sur Gestion des stratégies, puis sélectionnez Afficher l’historique.

autorisations

Nécessite l’appartenance au rôle de base de données fixe PolicyAdministratorRole .

Important

Élévation possible des informations d’identification : les utilisateurs du rôle PolicyAdministratorRole peuvent créer des déclencheurs de serveur et planifier des exécutions de stratégie qui peuvent affecter l’opération de l’instance du Moteur de base de données. Par exemple, les utilisateurs du rôle PolicyAdministratorRole peuvent créer une stratégie qui peut empêcher la plupart des objets d’être créés dans le Moteur de base de données. En raison de cette élévation possible d’informations d’identification, le rôle PolicyAdministratorRole doit être accordé uniquement aux utilisateurs approuvés pour contrôler la configuration du Moteur de base de données.

Exemples

L’exemple suivant supprime l’historique d’exécution de stratégie avant une date spécifique pour une stratégie avec un ID de 7.

EXEC msdb.dbo.sp_syspolicy_delete_policy_execution_history
    @policy_id = 7,
    @oldest_date = '2019-02-16 16:00:00.000';
GO