如何遍歷我的所有數據庫並獲取每個員工表的行數? 每個客戶都有自己的數據庫,需要找到每個數據庫中的總員工。SQL獲取DB中特定表的錶行數
一直試圖弄清楚如何使用sp_MSforeachdb
sp_MSforeachdb
@command1 = 'select count(*) from employee'
可輸出在單獨的表或將是很好的一個表中的室內用DB名稱。
如何遍歷我的所有數據庫並獲取每個員工表的行數? 每個客戶都有自己的數據庫,需要找到每個數據庫中的總員工。SQL獲取DB中特定表的錶行數
一直試圖弄清楚如何使用sp_MSforeachdb
sp_MSforeachdb
@command1 = 'select count(*) from employee'
可輸出在單獨的表或將是很好的一個表中的室內用DB名稱。
約
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 '' 如何在大多數情況下是可選在這裏。 ..
感謝[joew's blog](http://weblogs.sqlteam.com/joew/archive/2008/08/27/60700.aspx)提供了「use [?];」的語法並且[akmad在另一個堆棧溢出問題](http://stackoverflow.com/questions/167576/sql-server-check-if-table-exists)檢查表是否存在。 – perfectionist
非常感謝。我還加入了我的''?''以供選擇。 SELECT''?'',COUNT(*)來獲取表名。那些是單引號。 –
你需要告訴它第一次使用的數據庫(它在?
):
EXEC sp_MSforeachdb
@command1='use ?; select count(*) from employee'
幾乎所有的數據庫都是一樣的,只有一個是不同的沒有員工表。 –