sync
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Purge_Replication_Backup]') AND type in (N'P', N'PC'))
|
||||
DROP PROCEDURE [dbo].[Purge_Replication_Backup]
|
||||
GO
|
||||
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[Purge_Replication_Backup]
|
||||
@in_debug int = null
|
||||
AS
|
||||
/*=============================================================================
|
||||
|
||||
Explication du traitement realise par la SP
|
||||
-------------------------------------------
|
||||
Cette SP sert à conserver uniquement le dernier backup de replication et supprimer les autres
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Cette SP est appelée par le job D93120 - Purge Replication Backup
|
||||
|
||||
Parametres
|
||||
----------
|
||||
@in_debug : affichage des fichiers à supprimer
|
||||
|
||||
Creation : 19.04.17 / FLA
|
||||
|
||||
Modifications : 21.09.20 / RTC TFS 61470 Adapt sp after shared file config changes
|
||||
19.02.21 / SPE #TFS63889# - Change job D93120 - Purge Replication Backup according to new settings
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
/*------------------- Declaration des variables --------------------*/
|
||||
DECLARE @FileName varchar(255),
|
||||
@Path varchar(255),
|
||||
@dbVersion varchar(20),
|
||||
@FileToDelete varchar(350)
|
||||
|
||||
/*------------ Affectation des parametres aux variables ------------*/
|
||||
|
||||
SET @dbVersion = ActivePos_write.upd.DatabaseVersion()
|
||||
SET @FileName = 'ActivePos_read.' + @dbVersion + '.bak'
|
||||
|
||||
/*-------------------------- Traitement ---------------------------*/
|
||||
BEGIN TRY
|
||||
|
||||
/* Parcours de l'ensemble des dossiers d'ini */
|
||||
DECLARE c_Folders CURSOR LOCAL FORWARD_ONLY STATIC FOR
|
||||
SELECT CONVERT(VARCHAR(400), SettingValue) + '\' as [path]
|
||||
FROM ActiveSystemServer.cfg.Settings
|
||||
WHERE SettingId like 'Values.Modules.Replication.DbInitializationBackupPath%'
|
||||
AND len(SettingValue) > 1
|
||||
UNION ALL
|
||||
SELECT CONVERT(VARCHAR(400), SettingValue) + '\' as [path]
|
||||
FROM ActivePos_server.dbo.Settings
|
||||
WHERE SettingId like 'Values.Pharmacy.DbInitializationBackupPath%'
|
||||
AND len(SettingValue) > 1
|
||||
|
||||
OPEN c_Folders;
|
||||
FETCH NEXT FROM c_Folders
|
||||
INTO @Path
|
||||
WHILE @@fetch_status = 0
|
||||
BEGIN
|
||||
|
||||
/* Parcours de l'ensemble des fichiers de backup sauf le dernier en date */
|
||||
DECLARE c_FileNames CURSOR LOCAL FORWARD_ONLY STATIC FOR
|
||||
SELECT Filename
|
||||
FROM [dbo].[aps_Directory_Get_Files](@Path, '*.bak')
|
||||
WHERE Filename <> @FileName
|
||||
ORDER BY Filename
|
||||
|
||||
OPEN c_FileNames;
|
||||
|
||||
FETCH NEXT FROM c_FileNames
|
||||
INTO @FileToDelete
|
||||
|
||||
WHILE @@fetch_status = 0
|
||||
BEGIN
|
||||
SET @FileToDelete = @Path + @FileToDelete
|
||||
|
||||
IF @in_debug = 1
|
||||
PRINT @FileToDelete
|
||||
ELSE
|
||||
EXEC dbo.aps_File_Delete @path = @FileToDelete
|
||||
|
||||
FETCH NEXT FROM c_FileNames
|
||||
INTO @FileToDelete
|
||||
END
|
||||
|
||||
CLOSE c_FileNames
|
||||
DEALLOCATE c_FileNames
|
||||
|
||||
FETCH NEXT FROM c_Folders
|
||||
INTO @Path
|
||||
END
|
||||
|
||||
CLOSE c_Folders
|
||||
DEALLOCATE c_Folders
|
||||
|
||||
/*---------------------- Traitement des erreurs ----------------------*/
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
|
||||
/* Traitement des erreurs (avec RaiseError) */
|
||||
EXEC dbo.get_Error_Info @in_RaiseError = 1
|
||||
|
||||
END CATCH
|
||||
GO
|
||||
Reference in New Issue
Block a user