[SQL Server] Démarrer un serveur à distance
-- =============================================
-- Author: KHARROUBI Zouhaier
-- Create date: 10/12/2014
-- Description: Démarrer un serveur à distance
-- =============================================
CREATE PROCEDURE [dbo].[usp_DemarrerServeurDistant]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @Requete AS NVARCHAR(MAX)
DECLARE @Nbre_Fic_Error AS INT
DECLARE @Nom_Fic_Error AS VARCHAR(60)
DECLARE @Mail_Body AS NVARCHAR(MAX)
IF EXISTS(SELECT * FROM tempdb..sysobjects WHERE id = object_id(N'[tempdb]..[#ListeFichiersError]'))
DROP TABLE #ListeFichiersError
CREATE TABLE #ListeFichiersError
(
Num_Fic_Error INT IDENTITY(1,1),
Nom_Fic_Error VARCHAR(60) NULL
)
SELECT @Requete='INSERT INTO #ListeFichiersError EXEC master.sys.xp_cmdshell ''DIR \\Serveur_2\JOURNAL\*.zip /B'''
EXEC (@Requete)
DELETE FROM #ListeFichiersError WHERE Nom_Fic_Error LIKE '%File Not Found%' OR LTRIM(RTRIM(Nom_Fic_Error))='' OR Nom_Fic_Error IS NULL
SELECT @Nbre_Fic_Error=COUNT(*) FROM #ListeFichiersError WHERE Nom_Fic_Error NOT LIKE '%File Not Found%'
IF @Nbre_Fic_Error>=15
BEGIN
SELECT @Mail_Body= N'<H>Bonjour,<BR></BR></H>'
SELECT @Mail_Body=@Mail_Body+ '<H><b></b>L''intégration des données a échouée.<BR></BR></H>'
SELECT @Mail_Body= @Mail_Body+ N'<H>Le nombre de(s) fichier(s) Erronés sont : ' + CAST(@Nbre_Fic_Error AS VARCHAR(3)) + '<BR></BR></H>'
SELECT @Mail_Body= @Mail_Body+ N'<H>Le Serveur Serveur_2 a été démarré.<BR></BR></H>' +
N'<H><i>Cordialement,<BR></BR></H>' +
N'<H>Service Base de Données</i></H>' ;
IF @Nbre_Fic_Error>0
BEGIN
--Envoyer un mail d'alerte
EXEC msdb..sp_send_dbmail@profile_name='SendMail',@importance='High', @recipients='Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.', @subject='Echec Intégration de Données',@body=@Mail_Body, @body_format = 'HTML';
--Forcer le démarrage de la machine Serveur_2
EXEC master.sys.xp_cmdshell'C:\PSEXEC\psexec.exec \\01.02.03.04 shutdown -r -f -t 30 -c "Demarrage forcee suite Anomalie Integration"'
END
END
DROP TABLE #ListeFichiersError
END