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 : 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
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.