SQL SERVER 数据库表索引重建

-- =============================================
-- Author:          Yudg
-- Create date:   2011-08-25
-- Description:    数据库表索引重建
-- =============================================
CREATE PROCEDURE [pDBReIndex]
AS
BEGIN
    SET NOCOUNT ON;       
   
    DECLARE @Name VARCHAR(512)
   
    DECLARE Cur Cursor For
    SELECT name FROM SYS.tables
    Open Cur
    Fetch Next From Cur INTO @Name
    WHILE @@FETCH_STATUS = 0
    BEGIN
        DBCC DBREINDEX(@Name)
        IF @@ERROR > 0 GOTO Err     --错误处理
        FETCH NEXT FROM Cur INTO @Name
    END
   
    CLOSE Cur
    DEALLOCATE Cur   
    RETURN
    /******************************************************               
                            错误处理     
    \******************************************************/   
    Err:
        BEGIN           
            --抛出异常
            DECLARE @ErrorMessage NVARCHAR(4000);
            DECLARE @ErrorSeverity INT;
            DECLARE @ErrorState INT;
            SELECT @ErrorMessage = ERROR_MESSAGE();
            SELECT @ErrorSeverity = ERROR_SEVERITY();
            SELECT @ErrorState = ERROR_STATE();
            RAISERROR (@ErrorMessage, -- Message text.
                       @ErrorSeverity, -- Severity.
                       @ErrorState -- State.
                       );
        END
END

posted @ 2011-08-25 17:48  Yudg  阅读(620)  评论(0)    收藏  举报