--清除临时表
use AISXXXXX
go
declare @sql varchar(max)
set @sql='';
with t as
(select name from sys.tables where create_date<getdate() and (name like 'tm[^_]%' or name like 'GL[^_]%') )
delete from t1 from T_BAS_TEMPORARYTABLENAME t1
join t on t1.FTABLENAME=t.name;
with t1 as
(select name from sys.tables where create_date<getdate() and (name like 'tm[^_]%' or name like 'GL[^_]%'))
select @sql=@sql+'drop table '+name+char(13)
from t1;
exec(@sql)
--重建索引
use AISXXXXX
GO
declare @ftablename varchar(255),@findexname varchar(255)
declare auth_cur cursor for
SELECT distinct object_name(a.object_id) AS TB
FROM sys.dm_db_index_physical_stats ( DB_ID() , NULL , NULL, NULL, NULL ) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
where avg_fragmentation_in_percent>10 AND object_name(a.object_id)<>'' AND name<>'' AND object_name(a.object_id) NOT LIKE 'TMP%' and object_name(a.object_id) not like 'GL%'
open auth_cur
fetch next from auth_cur into @ftablename
while (@@fetch_status=0)
begin
EXEC('ALTER INDEX ALL ON [dbo].['+@ftablename+'] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)')
fetch next from auth_cur into @ftablename
end
close auth_cur
deallocate auth_cur
GO