Utilisation de try catch dans une procédure de backup de database
Bonjour,
voici ci dessous le code de ma procédure pour backuper une de mes BDD :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| --*************************************************
ALTER procedure [dbo].[SetDumpByCampaignId]
(
@campaignId char(32)
)
AS
BEGIN TRANSACTION
BEGIN TRY
--Backup de la BDD
EXEC ('BACKUP DATABASE Data_'+@campaignId+' to disk=''E:\Backup\Data_'+@campaignId+'.bak''')
--Suppression de la BDD
EXEC ('DROP DATABASE Data_'+@campaignId)
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_MESSAGE() as ErrorMessage;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
SELECT (-1) AS ReturnCode;
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
SELECT (0) AS ReturnCode;
GO
--************************************************* |
Quand je mets en place le try catch, j'ai l'erreur suivante :
N° d'erreur : 3013
Severity : 16
Message : BACKUP DATABASE s'est terminé anormalement.
Par contre, quand j'enleve toute la partie try catch, je n'ai pas d'erreur !!!
Comment puis-je faire la gestion d'erreur sur le backup ?
Merci de votre aide...