USE [HCITools] GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CheckMaintenanceWindow]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[CheckMaintenanceWindow] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CheckMaintenanceWindow]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[CheckMaintenanceWindow] AS' END GO ALTER PROCEDURE [dbo].[CheckMaintenanceWindow] @in_debug int = null, @in_JobName sysname AS /*============================================================================= Explication du traitement realise par la SP ------------------------------------------- Cette SP sert à savoir si le job appelant peut s'executer ou s'il est dans la plage de maintenance Contexte d'utilisation ---------------------- Cette SP est appelée via les jobs [D91040 - Backup of simple databases] et [D91050 - Backup of full databases] Parametres ---------- @in_debug : non utilisé Creation : 16.12.20 / FLA Modifications : 04.05.21 / FLA : changement du comportement par défaut si la centrale n'est pas joignable 18.01.22 / SPE : OCTPDBA-92 : Adapt [HCITools].[dbo].[CheckMaintenanceWindow] stored procedure to get information from the new S10 maintenance windows =============================================================================*/ set nocount on; /*------------------- Declaration des variables --------------------*/ declare @DateFROM datetime = '', @DateTO datetime = '' /*-------------------------- Traitement ---------------------------*/ BEGIN TRY SELECT @DateFROM = convert(datetime,[ITCS_value]) FROM [Arizona].[dbo].[IT_config_setting] WHERE [ITCS_key] = 'SCCMMWStart' SELECT @DateTO = convert(datetime,[ITCS_value]) FROM [Arizona].[dbo].[IT_config_setting] WHERE [ITCS_key] = 'SCCMMWEnd' IF @DateFROM is not null and @DateTO is not null BEGIN IF (GETDATE() BETWEEN convert(datetime,@DateFROM) AND convert(datetime,@DateTO)) BEGIN EXEC msdb.dbo.sp_stop_job @job_name = @in_JobName RAISERROR('This server is actually in a SCCM Maintenance window, execution of this job is cancelled!',16,1) END END /*---------------------- Traitement des erreurs ----------------------*/ END TRY BEGIN CATCH /* Traitement des erreurs (avec RaiseError) */ EXEC dbo.get_Error_Info @in_RaiseError = 1 END CATCH GO