环思产品论坛
标题:
重建所有索引
[打印本页]
作者:
zhouf
时间:
2014-12-22 09:14
标题:
重建所有索引
本帖最后由 zhouf 于 2020-10-29 17:50 编辑
这个只产生重建索引的脚本,不执行。
SET NOCOUNT ON;
DECLARE @tbIndex TABLE(iIden INT IDENTITY(1,1) PRIMARY KEY
,sObjName NVARCHAR(255),sIndexName NVARCHAR(255));
INSERT INTO @tbIndex
SELECT b.name,a.name
FROM sys.sysindexes a
JOIN sys.objects b ON b.object_id=a.id
WHERE a.indid IN (0,1) AND a.name IS NOT NULL AND b.type='u';
DECLARE @iIden INT=0,@sSQL NVARCHAR(2000)=0x,@rtn NVARCHAR(2)=NCHAR(13)+NCHAR(10);
WHILE EXISTS(SELECT * FROM @tbIndex)
BEGIN
SELECT TOP 1 @iIden=iIden FROM @tbIndex;
SELECT @sSQL=N'ALTER INDEX '+sIndexName+N' ON dbo.'+sObjName+N' REORGANIZE;'+@rtn+N'GO'+@rtn
+N'ALTER INDEX '+sIndexName+' ON dbo.'+sObjName+' REBUILD PARTITION = ALL;'+@rtn+N'GO'+@rtn
FROM @tbIndex WHERE iIden=@iIden;
PRINT @sSQL;
DELETE @tbIndex WHERE iIden=@iIden;
END;
复制代码
欢迎光临 环思产品论坛 (http://bbs.huansi.cn/)
Powered by Discuz! X3.2