sp_MSforeachtable使用說明

SQL Study

今天看了本SQL電子書,介紹閞於索引的維護及管理,

裡面有用到一個系統的StoredProcedure,

叫做sp_MSforeachtable,做為Rebuild Indexes,

官方的公開文件似乎沒有提到,

使用過後覺得還蠻不錯用了,所以筆記下來~

因介紹中有分SQL 2000及SQL 2005/2008,
故便將兩段語法都貼上,以免日後忘了~

SQL Server 2000
--Rebuild all indexes with keeping the default fill factor for each index
USE [DATABASE_NAME];
GO
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?')";
GO
--Rebuild all indexes with specifying the fill factor
USE [DATABASE_NAME];
GO
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ',
[FILL_FACTOR_PERC])";
GO

 

SQL Server 2005/2008
--Rebuild all indexes online with keeping the default fill factor for each index
USE [DATABASE_NAME];
GO
EXEC sp_MSforeachtable @command1="print '?'", @command2="ALTER INDEX ALL ON ?
REBUILD WITH (ONLINE=ON)";
GO
--Rebuild all indexes offline with keeping the default fill factor for each index
USE [DATABASE_NAME];
GO
EXEC sp_MSforeachtable @command1="print '?'", @command2="ALTER INDEX ALL ON ?
REBUILD WITH (ONLINE=OFF)";
GO
--Rebuild all indexes online with specifying the fill factor
USE [DATABASE_NAME];
GO
EXEC sp_MSforeachtable @command1="print '?'", @command2="ALTER INDEX ALL ON ?
REBUILD WITH (FILLFACTOR=[FILL_FACTOR_PERC],ONLINE=ON)";
GO
--Rebuild all indexes offline with specifying the fill factor
USE [DATABASE_NAME];
GO
EXEC sp_MSforeachtable @command1="print '?'", @command2="ALTER INDEX ALL ON ?
REBUILD WITH (FILLFACTOR=[FILL_FACTOR_PERC],ONLINE=OFF)";
GO