В SQL Server, если вам не нужны абсолютно точные подсчеты, вы также можете проверить представления каталога.Это было бы гораздо проще сделать - вам не нужно вести подсчет самостоятельно - и это намного дешевле в системе.В конце концов, если вам нужно сосчитать все строки в таблице, вам нужно сканировать эту таблицу, так или иначе, но никак не обойтись.
С этим оператором SQL вы получите всеТаблицы в вашей базе данных и их количество строк, сохраняемое в SQL Server:
SELECT
t.NAME AS TableName,
SUM(p.rows) AS RowCounts
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE
t.NAME NOT LIKE 'dt%' AND
i.OBJECT_ID > 255 AND
i.index_id <= 1
GROUP BY
t.NAME, i.object_id, i.index_id, i.name
ORDER BY
OBJECT_NAME(i.object_id)
Я не смог найти никакой документации о том, насколько точно эти числа, как правило, - но, по моему собственному опыту, они 'обычно на месте (если вы не выполняете какую-либо массовую загрузку или что-то в этом роде - но в этом случае вам также не нужно постоянно сканировать таблицу, чтобы получить точное значение)