Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jothaz

Re-criar indíces de todas as tabelas do BD

Recommended Posts

Re-criar indídces de todas as tabelas do BD

 

set nocount on DECLARE @tablename varchar(30) DECLARE @tablename_header varchar(75) DECLARE tnames_cursor CURSOR FOR SELECT name FROM sysobjects WHERE type = 'U' OPEN tnames_cursor FETCH NEXT FROM tnames_cursor INTO @tablename WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) BEGIN SELECT @tablename_header = 'Atualizando ' + RTRIM(UPPER(@tablename)) PRINT @tablename_header EXEC ('DBCC DBREINDEX ([' + @tablename + '], " ",70)') END FETCH NEXT FROM tnames_cursor INTO @tablename END PRINT ' ' PRINT ' ' SELECT @tablename_header = '************* Não existe mais tabelas *************' PRINT @tablename_header PRINT ' ' PRINT 'Atualização dos Indices - FIM' DEALLOCATE tnames_cursor go set nocount off
Fonte/Autor/link

AUTOR: retirado da internet mas não me recordo o link. Caso alguém seja o autor favor postar o link para que os créditos possam ser atribuido.

 

Dúvidas, criticas, contribuições, correções e adições serão bem vindas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do modo que o nosso amigo jothaz fez, tem este tb:

 

EXEC sp_MSforeachtable @command1= "DBCC DBREINDEX ('?', '', 80)"

a procedure sp_MSforeachtable retorna a lista de todas as tabelas, entao se for necessario rodar um comando em todas as tabelas, pode ser usada ela ao inves de cursores.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.