[SQL2K5] Fichiers de log des instances d'une base pour shrink et backup
Bonjour,
Afin de réaliser un package de base je cherche à obtenir les nom des fichiers log de mes instances.
Le script ressemble pour le moment à ça :
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 34 35 36
| DECLARE @name sysname
DECLARE @status INT
DECLARE DBCurseur CURSOR
FOR SELECT master.dbo.sysdatabases.name, master.dbo.sysdatabases.status
FROM master.dbo.sysdatabases
WHERE name LIKE 'Prn_Dwh_%'
AND NAME NOT LIKE '%snapshot%'
-- Ouverture du Curseur
OPEN DBCurseur
FETCH NEXT FROM DBCurseur
INTO @name, @status
-- Bouclage sur le curseur défini
WHILE @@FETCH_STATUS = 0
BEGIN
BACKUP LOG @name WITH TRUNCATE_ONLY
DBCC SHRINKFILE(Prn_Dwh_Acc_log, 100)
SELECT @name
FETCH NEXT FROM DBCurseur
INTO @name, @status
END
-----------------------------------------------------------------
-- Fermeture du Curseur
CLOSE DBCurseur
-- Libération de la mémoire prise par le Curseur
DEALLOCATE DBCurseur |
Mais évidement le SHRINKFILE ne fonctionne pas.
L'idéal serait d'alimenter mon curseur directement avec le nom du fichier log de chaque instance, mais je ne trouve pas comment faire.
La suite de mon package IS contient alors le backup, transfert le restore sur mes serveurs de dev.