[SQL SERVER][TSQL]sp_MSforeachtable

[SQL SERVER][TSQL]sp_MSforeachtable

上一篇介紹了好用的sp_MSforeachdb,

這篇繼續介紹另一個 sp_MSforeachtable,

你依然可以在 master 資料庫中找到它,

下面列出幾個實用的 command 。

 

1.列出資料庫中所有資料表筆數

use ricotest1
EXEC sp_MSforeachtable 'select ''?'' as 資料表名稱, Count(*) as 資料總筆數 from ?'

 

2.列出資料庫中所有資料表大小

use ricotest1
EXEC sp_MSforeachtable 'EXEC sp_spaceused ''?'''

 

 

3.重建資料庫中所有資料表索引

use ricotest1
EXEC sp_MSforeachtable 'print ''?'' DBCC DBREINDEX (''?'', '' '', 80)'

 

 

4.關閉資料庫中所有資料表 Trigger

use ricotest1
EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'

 

 

5.關閉資料庫中所有資料表 Constraint

use ricotest1
EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"

 

 

6.回收資料庫中所有資料表可變長度空間

use ricotest1
EXEC sp_MSforeachtable 'DBCC CLEANTABLE(0,''?'') WITH NO_INFOMSGS; ';

	
7.更新資料庫中所有資料表統計值
use ricotest1
EXEC sp_MSforeachtable 'UPDATE statistics ? WITH ALL'

 

 

8.清空資料庫中所有資料表資料

use ricotest1
EXEC sp_MSforeachtable 'TRUNCATE TABLE ?'

 

9.刪除資料庫中所有資料表資料

use ricotest1
EXEC sp_MSforeachtable 'delete from ?'

 

 

10.刪除資料庫中所有資料表

use ricotest1
EXEC sp_MSforeachtable 'drop table ?'

 

 

參考

http://www.sqlservercurry.com/2009/04/8-common-uses-of-undocumented-stored.html