|
--作用:重建当前数据库所有用户表索引 --日期:2004-11-11 --作者:ICERIVER DECLARE @DBCCString NVARCHAR(1000) DECLARE @TableName VARCHAR(100)
DECLARE Cur_Index CURSOR FOR SELECT Name AS TblName FROM sysobjects WHERE xType='U' ORDER BY TblName FOR READ ONLY
OPEN Cur_Index
FETCH NEXT FROM Cur_Index INTO @TableName
WHILE @@FETCH_STATUS=0 BEGIN SET @DBCCString = 'DBCC DBREINDEX(@TblName,'''')WITH NO_INFOMSGS'
EXEC SP_EXECUTESQL @DBCCString, N'@TblName VARCHAR(100)', @TableName PRINT '重建表' + @TableName +'的索引........OK!' FETCH NEXT FROM Cur_Index INTO @TableName END
CLOSE Cur_Index DEALLOCATE Cur_Index
PRINT '操作完成!'
--以上是用游标的操作来完成的,其实以上完全可以用一条语句来实现 --借助一个MS未公开的系统存储过程sp_msforeachtable --具体的实现就不写了,我会在后面专门和大家探讨一下该过程
|