Get record count for each table in a database
อยากรู้ว่าแต่ละ table ใน database ของ MS SQL Server มีกี่ record แล้วเนี่ย จะทำอย่างไรดีน้อ
วิธีแรก
แต่ถ้ามีหลาย 100 table ล่ะ จะทำที่ละ table คงจะไม่ไหว
วิธีที่สอง Store Procedure
แต่ก็นานอยู่ดีกว่าจะได้
วิธีที่สาม เป็นวิธีใช้ประยุกต์ใช้ System Table ให้เกิดประโยชน์ครับ (มีเค้าอยู่ก็เอามาใช้ประโยชน์หน่อย)
วิธีแรก
SELECT Count(*)
แต่ถ้ามีหลาย 100 table ล่ะ จะทำที่ละ table คงจะไม่ไหว
วิธีที่สอง Store Procedure
exec sp_msforeachtable @command1="SELECT '?' AS TableName, COUNT(*) as TblRowCount FROM ? ORDER BY TableName"
แต่ก็นานอยู่ดีกว่าจะได้
วิธีที่สาม เป็นวิธีใช้ประยุกต์ใช้ System Table ให้เกิดประโยชน์ครับ (มีเค้าอยู่ก็เอามาใช้ประโยชน์หน่อย)
SELECT CONVERT(char(10), t.TABLE_SCHEMA) AS Owner, CONVERT(char(25), t.TABLE_NAME) AS 'TABLE Name', MAX(i.[rows]) AS 'Record COUNT'
FROM sysindexes i INNER JOIN
INFORMATION_SCHEMA.TABLES t ON OBJECT_NAME(i.id) = t.TABLE_NAME
WHERE (t.TABLE_TYPE = 'BASE TABLE')
GROUP BY t.TABLE_SCHEMA, t.TABLE_NAME
Comments