77 lines
2.5 KiB
Transact-SQL
77 lines
2.5 KiB
Transact-SQL
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
|