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
|
CREATE proc proc_reindex
(@NomTable varchar(128) = NULL)
as
begin
declare cur cursor for
select o.name, i.name
from sysindexes I INNER JOIN sysobjects O on O.id=I.id
where i.indid < 255 and i.indid > 0
and o.type='U'
and o.name like coalesce(@NomTable, o.name)
declare @tbl varchar(128), @indx varchar(128), @sql varchar(512)
open cur
FETCH cur into @tbl, @indx
WHILE @@FETCH_STATUS = 0
BEGIN
print 'Réindexation de la table '+ @tbl+', index '+@indx
set @sql='dbcc indexdefrag(0,'+@tbl+','+@indx+')'
exec (@sql)
FETCH cur into @tbl, @indx
END
close cur
deallocate cur
end |