摘要:SQL - DB 中,所有資料表的資料總筆數
最近在寫測試程式時,需要讀取一些比較大的資料表作為資料來源,但每每遇到這樣的情況時,都是笨笨的一個一個的把資料表開起來看筆數(比較不趕時間的時候...),若是趕時間的話,那就只好下點簡單的語法來 Count。但...這並不是很好的方式,因為都是在浪費時間,那不如就借重 SQL SERVER 的 System Table 來完成這個小小的心願吧!!
在 System Table 中,最常使用的就是 sys.sysobjects,它擁有了資料庫內所建立的每個物件資訊,除此之外,還需要借重 sys.partitions 來完成,因為這個裡面有紀錄每一個資料表的資料列數。這麼一來想要的結果就呼之欲出了...
Code:
USE AdventureWorks;
SELECT S.NAME '結構描述', O.NAME '資料表名稱', P.ROWS '列總數'
FROM SYS.OBJECTS O INNER JOIN SYS.SCHEMAS S
ON O.SCHEMA_ID = S.SCHEMA_ID
INNER JOIN SYS.PARTITIONS P
ON O.OBJECT_ID = P.OBJECT_ID
WHERE (O.TYPE = 'U') AND
(P.INDEX_ID IN (0,1))
ORDER BY S.NAME, O.NAME ASC;
結果:
參考:
sys.sysobjects (Transact-SQL)
sys.partitions (Transact-SQL)