|
本帖最后由 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;
复制代码
|
|