我如何通过我的所有数据库进行迭代并获得每个员工表的行数? 每个客户都有自己的DB,需要找到每个DB中的员工总数。
一直在试图弄清楚如何使用 sp_MSforeachdb
sp_MSforeachdb
@command1 = 'select count(*) from employee'
可以在单独的表格中输出,也可以在数据库名称的一个表格中输出。
答案 0 :(得分:1)
你需要告诉它首先使用哪个数据库(它在?
中):
EXEC sp_MSforeachdb
@command1='use ?; select count(*) from employee'
答案 1 :(得分:1)
怎么样
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''在大多数情况下是可选的......