SQL получить количество строк таблицы для конкретной таблицы в БД
Как я могу перебрать все мои БД и получить количество строк для каждой таблицы сотрудников? У каждого клиента есть своя БД, нужно найти общее количество сотрудников в каждой БД.
Пытался выяснить, как использовать sp_MSforeachdb
sp_MSforeachdb
@command1 = 'select count(*) from employee'
Может выводить в отдельных таблицах или будет хорошо в одной таблице с именем БД.
2 ответа
Решение
Как насчет
DECLARE @sql nvarchar(1000)
SET @sql = 'Use [?];'
+ 'IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''dbo'' AND TABLE_NAME = ''employee''))'
+ ' BEGIN'
+ ' SELECT COUNT(*) from [employee]'
+ ' END'
exec sp_MSforeachDB @sql
TABLE_SCHEMA = ''dbo'' здесь необязательно в большинстве случаев...
Вы должны сказать ему, какую базу данных использовать в первую очередь (она находится в ?
):
EXEC sp_MSforeachdb
@command1='use ?; select count(*) from employee'