Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 989 fois - Téléchargée 24 fois
DECLARE @name sysname DECLARE @LaRequette varchar(8000) DECLARE @DateJour varchar(20) DECLARE @TauxEspaceLibre int -- VALEUR A CHOISIR CONCERNANT LE TAUX D'ESPACE LIBRE VOULU SET @TauxEspaceLibre = 10 SET @DateJour = REPLACE(CONVERT(VARCHAR, GetDate(), 102), '.', '_') PRINT '---------------------------------------------------------------------' PRINT '-- DATE COMPACTAGE LANCE : '+ @DateJour PRINT '---------------------------------------------------------------------' DECLARE TESTCURSEUR CURSOR FOR SELECT Master.dbo.sysdatabases.name FROM Master.dbo.sysdatabases WHERE Master.dbo.sysdatabases.name NOT IN ('tempdb', 'model', 'pubs') OPEN TESTCURSEUR FETCH NEXT FROM TESTCURSEUR INTO @name WHILE @@FETCH_STATUS = 0 BEGIN PRINT '' PRINT '---------------------------------------------------------------------' PRINT '-- COMPACTAGE EFFECTUE SUR LA BASE DE DONNEES : '+ @name PRINT '---------------------------------------------------------------------' SET @LaRequette = 'DBCC SHRINKDATABASE (['+ @name +'], '+ CONVERT(VARCHAR(10), @TauxEspaceLibre) +')' PRINT 'Requette : '+ @LaRequette EXECUTE (@LaRequette) PRINT '---------------------------------------------------------------------' FETCH NEXT FROM TESTCURSEUR INTO @name END CLOSE TESTCURSEUR DEALLOCATE TESTCURSEUR
tu m'a aider
DECLARE @@LaRequete varchar(8000); -- orthographe
DECLARE @DateJour varchar(10); --intervalle de définition
SET @DateJour = Convert(Varchar(10), GetDate(), 103); -- conversion
sinon aucune remarque sur le fond
Code très intéressant et souple à adapter pour tous scipts
devant être executer sur "presque" toutes les bases. :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.