Bonjour à tous,
Je suis sous SQL Server 2005
Je dois supprimer une centaine de DB suite à une migration d'SQL2005 vers SQL2008.
Mes DB commencent par un code applicatif, genre PPPA et se termine par _MIG2008. Et pour chaque DB, il y a 2 jobs qui eux sont désactivé mais pas renommé (malheureusement, sinon j'aurais facile).
Les 2 jobs sont nommés comme ceci : PPPA:Backup 30 minutes et PPPA:backup full
Via ma variable @DBname, comment puis-je laisser le _MIG2008 mais qu'il prenne les caractères avant le _MIG2008 et supprimer tous les jobs en prenant le nom de la db sans prendre en compte le _MIG2008 ?
ATTENTION, malheureusement, parfois la DB s'appelle aussi PPPAblablabla
Je ne sais pas comment adapté la ligne "WHERE name LIKE @DBname ':%'" ? Cette ligne là était utilisée à l'époque pour désactiver les jobs. Enfin si c'est celle-là que je dois adapter.
Merci
Voici ma query :
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
16
17
18
19
20 DECLARE @DBName VARCHAR(255) DECLARE @JobName VARCHAR(255) SET @DBName = 'MYDB_MIG2008' DECLARE DeleteJobs CURSOR FOR SELECT name FROM msdb..sysjobs WHERE name LIKE @DBname ':%' OPEN DeleteJobs FETCH DeleteJobs INTO @JobName WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Deleting: ' + @JobName EXEC msdb.dbo.sp_delete_job @job_name=@JobName FETCH DeleteJobs INTO @JobName END CLOSE DeleteJobs DEALLOCATE DeleteJobs
Partager