Dans le même esprit que la source précédente :
-
http://www.sqlfr.com/code.aspx?ID=29623
Voila une seconde qui permet de reconstruire intégralement les indexes de toutes les bases utilisatrices du server SQL.
Source / Exemple :
------------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.SP_System_RebuildAllIndexes
/*
Permet de reconstruire les Indexes
de toutes les bases du serveur SQL Server
AS
DECLARE @name sysname
DECLARE @nameTable sysname
DECLARE @LaRequette varchar(8000)
DECLARE @DateJour varchar(20)
SET @DateJour = REPLACE(CONVERT(VARCHAR, GetDate(), 102), '.', '_')
PRINT '---------------------------------------------------------------------'
PRINT ' DATE DE LA MISE A JOUR DES STATISTIQUES LANCEE : '+ @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 ' RECONSTRUCTION DES INDEXES DE LA BASE : '+ @name
PRINT '---------------------------------------------------------------------'
SET @LaRequette = 'SELECT ''[''+ U.name +''].[''+ O.name +'']'' AS name
FROM ['+ @name +'].dbo.sysobjects O INNER JOIN ['+ @name +'].dbo.sysusers U
ON O.uid = U.uid WHERE O.xtype= ''U'' OR O.xtype= ''V''
AND O.name NOT IN (''syssegments'', ''sysconstraints'')
AND NOT(O.name LIKE ''%#%'') ;'
PRINT 'Changement de base : '+ @LaRequette
PRINT '---------------------------------------------------------------------'
EXEC('DECLARE TESTCURSEURTABLE CURSOR FOR '+ @LaRequette)
OPEN TESTCURSEURTABLE
FETCH NEXT FROM TESTCURSEURTABLE
INTO @nameTable
WHILE @@FETCH_STATUS = 0
BEGIN
SET @LaRequette = 'DBCC DBREINDEX (''['+ @name +'].'+ @nameTable +''', '''', 100)'
PRINT 'Requette : '+ @LaRequette
EXECUTE (@LaRequette)
PRINT '---------------------------------------------------------------------'
FETCH NEXT FROM TESTCURSEURTABLE
INTO @nameTable
END
CLOSE TESTCURSEURTABLE
DEALLOCATE TESTCURSEURTABLE
FETCH NEXT FROM TESTCURSEUR
INTO @name
END
PRINT '---------------------------------------------------------------------'
PRINT ' FIN DE LA RECONSTRUCTION'
PRINT '---------------------------------------------------------------------'
CLOSE TESTCURSEUR
DEALLOCATE TESTCURSEUR
GO
------------------------------------------------------------------------------------------------------
-- Elle est utilisable avec la commande suivante :
exec dbo.SP_System_RebuildAllIndexes
Conclusion :
En espérant que cette SP vous rende service.
Bon coding
Romelard Fabrice (Alias F___)
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.