Bonjour,
Tout d'abord, désolé pour le titre, je ne sais pas quoi mettre comme mot clé parlant (si qqun à une idée, je change volontiers).
Donc, je reprend aujourd'hui une procédure stockée développée par un consultant qui fait des checkDB sur toutes nos bases.
Le problème est que la procédure plante car l'une de nos db à un filegroup en lecture seule.
Du coup j'ai ajouté un test pour savoir si la DB à filegroup en readonly et passer en single user au besoin pour faire le checkdb.
ça fonctionne bien sauf pour master.
Même si le système n’exécutera jamais le code, il me retourne quand même une erreur.
J'ai isolé le cas dans le code ci-dessous.
Quelque 'un a une idée pour contourner le problème ?
L'approche simple serait d'ignorer master en amont mais je me demande si il n'y a pas une autre approche.
Il faut imaginer que tout ça est prix dans une boucle avec du Sql dynamique.
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 --IF EXISTS(Select Top 1 1 from master.sys.filegroups Where is_read_only=1) IF 1=2 BEGIN ALTER DATABASE master SET SINGLE_USER WITH ROLLBACK IMMEDIATE END ELSE BEGIN print 'Voilà on doit pas faire de alter table' END
Partager