Bonjour,
Nous avons dans le cadre d'une reprise à passer différents script dans un ordre particulier sur deux bases de données. Nous avons donc un document décrivant les étapes du genre.
Passer Script 1 sur base A
Passer Script 2 sur base A
Passer script 3 sur base B
Faire telle opération
Lancer script 4 sur base A.
Je crains les erreurs lors du suivi du mode opératoire, et par exemple que le script 1 soit passé sur la base B. Je voudrais donc blinder mes scripts pour qu'ils partent en erreur et ne s’exécute pas en cas d'erreur de base de données. Le problème est que ces scripts contiennent des GO
Voici ce que j'ai essayé.
Voilà ce que j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SET XACT_ABORT ON; if db_name() not like 'CNET%' begin raiserror('Ce script ne doit pas être joué sur cette base de données',16,1) end GO select 'Je ne dois pas voir ce message' GO
Deuxième essaiMsg 50000, Level 16, State 1, Line 4
Ce script ne doit pas être joué sur cette base de données
Je ne dois pas voir ce message
(1 row(s) affected)
Qui donne bien le résultat attendu tant que je ne décommente pas les GO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if db_name() not like 'CNET%' begin GOTO ErreurBD end --GO select 'Je ne dois pas voir ce message' --GO GOTO fin ErreurBD: raiserror('Ce script ne doit pas être joué sur cette base de données',16,1) fin:
Y-a t-il une solution à mon problème, sachant que je ne suis pas sure de pouvoir supprimer tous les GO.
Merci de votre aide
Soazig
Partager