DECLARE @SQLStatement nvarchar(4000)--DECLARE TableList CURSOR LOCAL FAST_FORWARD READ_ONLY FORDeclare @tmpReindexList table (SeqNo int identity(1,1) not null, SQLStatement nvarchar(4000) not null)insert into @tmpReindexList (SQLStatement) SELECT N'DBCC DBREINDEX (''['+ db_name() + '].' + QUOTENAME(TABLE_SCHEMA) + N'.' + QUOTENAME(TABLE_NAME) + ''')' as SQLStatementFROM INFORMATION_SCHEMA.TABLESWHERE EXISTS ( SELECT * FROM sysindexes WHERE id = OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + N'.' + QUOTENAME(TABLE_NAME)) AND indid IN(0,1) )ORDER BY 1-- OPEN TableListdeclare @SeqNo intWHILE 1 = 1BEGIN --FETCH NEXT FROM TableList INTO @TableName Select top 1 @SeqNo = SeqNo, @SQLStatement=SQLStatement from @tmpReindexList if @@rowcount = 0 break print @SQLStatement EXEC(@SQLStatement) delete from @tmpReindexList where SeqNo = @SeqNoEND-- CLOSE TableList-- DEALLOCATE TableListexec sp_updatestatsdbcc updateusage(0) with count_rows
Jul 13