USE [NimsoftSLM]
GO
/****** Object: StoredProcedure [dbo].[spn_de_TableMaintenance] Script Date: 07/11/2011 12:55:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER proc [dbo].[spn_de_TableMaintenance]
@TableName sysname = null, -- if null, all tables
@IndexName sysname = null, -- if null, proc decide which index needs maintenance
@MaintenanceMode int = 0, -- if 0, proc decides type of maintenance
@OnlineMode int = 0, -- if 0, proc choses online mode based on dbms edition
@LowFragPctLevel int = 5,
@HighFragPctLevel int = 30,
@LogLevel int = 0
as begin
declare @Msg varchar(max), @StartTime datetime
select @StartTime = getdate(), @Msg = 'spn_de_TableMaintenance(' + isnull(@TableName,'') + ','+ isnull(@IndexName,'') + ',' + isnull(convert(varchar(max),@MaintenanceMode),'null') + ',' + isnull(convert(varchar(max),@OnlineMode),'null') + ')'
if (@LogLevel >= 5) exec spn__LogEvent @Prefix = '>', @Msg = @Msg
declare
@lTableName sysname,
@lStatus int
select @lStatus = 0
if (@TableName is null) select @TableName = 'RN_QOS_DATA_%'
declare c1 cursor for select name from sys.tables where name like @TableName
open c1
fetch c1 into @lTableName
while (@@FETCH_STATUS = 0) begin
exec @lStatus = spn_de_IndexMaintenance @lTableName, @IndexName, @MaintenanceMode, @OnlineMode,@LowFragPctLevel,@HighFragPctLevel,null, @LogLevel
fetch c1 into @lTableName
end
close c1
deallocate c1
if (@LogLevel >= 4) exec spn__LogEvent @Prefix = '<', @Msg = @Msg, @[email protected]
return @lStatus
end
GO