用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - sql代码库

重建当前数据库中的所有索引

2015-09-27 作者: 小章举报

[sql]代码库

DECLARE @sql nvarchar(500)
  
DECLARE RebuildAllTableIndexes CURSOR
READ_ONLY
FOR
SELECT QUOTENAME(SCHEMA_NAME(tbl.schema_id)) + '.' + QUOTENAME(tbl.NAME) tb_name,
    QUOTENAME(i.NAME) idx_name
FROM sys.tables AS tbl
INNER JOIN sys.indexes AS i ON (
        i.index_id > 0
        AND i.is_hypothetical = 0
        )
    AND (i.object_id = tbl.object_id)
  
DECLARE @tb_name nvarchar(255), @idx_name nvarchar(255)
OPEN RebuildAllTableIndexes
  
FETCH NEXT FROM RebuildAllTableIndexes INTO @tb_name, @idx_name
WHILE (@@fetch_status <> -1)
BEGIN
    IF (@@fetch_status <> -2)
    BEGIN
        SET @sql = N'ALTER INDEX ' + @idx_name + N' ON ' + @tb_name + N' REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90)'
        EXEC sp_executesql @sql
    END
    FETCH NEXT FROM RebuildAllTableIndexes INTO @tb_name, @idx_name
END
  
CLOSE RebuildAllTableIndexes
DEALLOCATE RebuildAllTableIndexes
GO


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...