Condividi tramite


sp_syspolicy_delete_policy_execution_history (Transact-SQL)

Si applica a: SQL Server

Elimina la cronologia di esecuzione dei criteri nella gestione basata su criteri. È possibile utilizzare questa stored procedure per eliminare la cronologia di esecuzione per criteri specifici o per tutti i criteri, nonché per eliminare la cronologia di esecuzione precedente a una data specifica.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @policy_id = ] policy_id

Identificatore del criterio per il quale si desidera eliminare la cronologia di esecuzione. @policy_id è int ed è obbligatorio. Può essere NULL.

[ @oldest_date = ] 'oldest_date'

Data meno recente per la quale si vuole mantenere la cronologia di esecuzione dei criteri. Qualsiasi cronologia di esecuzione precedente a questa data viene eliminata. @oldest_date è datetime ed è obbligatorio. Può essere NULL.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

È necessario eseguire sp_syspolicy_delete_policy_execution_history nel contesto del msdb database di sistema.

Per ottenere valori per @policy_id e per visualizzare le date della cronologia di esecuzione, è possibile usare la query seguente:

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;

Il comportamento seguente si applica se si specifica NULL per uno o entrambi i valori:

  • Per eliminare tutta la cronologia di esecuzione dei criteri, specificare NULL sia per @policy_id che per @oldest_date.

  • Per eliminare tutta la cronologia di esecuzione dei criteri per un criterio specifico, specificare un identificatore di criteri per @policy_id e specificare NULL come @oldest_date.

  • Per eliminare la cronologia di esecuzione dei criteri per tutti i criteri prima di una data specifica, specificare NULL per @policy_id e specificare una data per @oldest_date.

Per archiviare la cronologia di esecuzione dei criteri, è possibile aprire il log Cronologia criteri, in Esplora oggetti ed esportare la cronologia di esecuzione in un file. Per accedere al log Cronologia criteri, espandere Gestione, fare clic con il pulsante destro del mouse su Gestione criteri e quindi selezionare Visualizza cronologia.

Autorizzazioni

Richiede l'appartenenza al ruolo predefinito del database PolicyAdministratorRole .

Importante

Possibile elevazione delle credenziali: gli utenti nel ruolo PolicyAdministratorRole possono creare trigger del server e pianificare esecuzioni di criteri che possono influire sul funzionamento dell'istanza del motore di database. Ad esempio, gli utenti nel ruolo PolicyAdministratorRole possono creare un criterio che può impedire la creazione della maggior parte degli oggetti nella motore di database. A causa di questa possibile elevazione delle credenziali, il ruolo PolicyAdministratorRole deve essere concesso solo agli utenti attendibili con il controllo della configurazione del motore di database.

Esempi

Nell'esempio seguente viene eliminata la cronologia di esecuzione dei criteri prima di una data specifica per un criterio con ID .7

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