1,count関数
件数が膨大なテーブルに対して実行した場合、結果が返ってくるまでに時間がかかります。
SELECT
count(*) as [行数]
FROM
[テーブル名]
2,sp_spaceused
システム ストアド プロシージャのsp_spaceusedを使ってレコード数を取得できます。
EXEC sp_spaceused [テーブル名]
3,sys.partitions
システム カタログ ビューを使用して、データベース内の全テーブルの行の概数を取得できます。
SELECT
obj.name as [テーブル名]
,sum(par.rows) as [行の概数]
FROM
sys.objects as obj
INNER JOIN
sys.partitions as par
ON obj.object_id = par.object_id
WHERE
obj.type = 'U'
and par.index_id < 2
GROUP BY
obj.name
ORDER BY
obj.name
テーブルがパーティション分割されている場合、パーティションごとの行の概数も取得できます。
SELECT
obj.name as [テーブル名]
,par.partition_number as [パーティション番号]
,par.rows as [行の概数]
FROM
sys.objects as obj
INNER JOIN
sys.partitions as par
ON obj.object_id = par.object_id
WHERE
obj.type = 'U'
and par.index_id < 2
ORDER BY
obj.name
,par.partition_number
4,sys.sysindexes
使用して行数を取得もできますが、sys.sysindexesは将来サポートされなくなるようです。
SELECT
obj.name as [テーブル名]
,ind.rows as [行数]
FROM
sys.objects as obj
INNER JOIN
sys.sysindexes as ind
ON obj.object_id = ind.id
WHERE
obj.type = 'U'
and ind.indid < 2
ORDER BY
obj.name