[SQL Server] 全テーブルのデータ件数を一度に取得するクエリ
全テーブルのデータ件数を取得する方法は簡単だ。
該当データベースから下記のSQLを実行すると
そのデータベースの存在するテーブルに対してテーブル名とデータ件数が取得できる。
またCOUNT(*)を使うより応答速度が早い!
SELECT A.name AS TableName, B.rows
FROM sys.objects AS A
JOIN sys.sysindexes AS B
ON A.object_id = B.id AND B.indid < 2
WHERE A.type = 'U'
ORDER BY A.name
実行結果
また特定のテーブルのみデータ件数を取得したい場合は下記のように作成する。
SELECT A.name AS TableName, B.rows
FROM sys.objects AS A
JOIN sys.sysindexes AS B
ON A.object_id = B.id AND B.indid < 2
WHERE A.type = 'U' AND A.name = '[テーブル名]'
ORDER BY A.name
これを元に実際に「tComDay」テーブルの件数を取得する時は下記のように作成する。
SELECT A.name AS TableName, B.rows
FROM sys.objects AS A
JOIN sys.sysindexes AS B
ON A.object_id = B.id AND B.indid < 2
WHERE A.type = 'U' AND A.name = 'tComDay'
ORDER BY A.name
実行結果
さらに!!!
特定テーブルのみデータ件数を取得ならもっと簡単な方法がある。
EXEC sp_spaceused '[テーブル名]'
また例文として「tComDay」テーブルの件数を取得する時は下記のように作成する。
EXEC sp_spaceused 'tComDay'
実行結果