すべての DB を反復処理して、各従業員テーブルの行数を取得するにはどうすればよいですか? 各クライアントには独自の DB があり、各 DB で全従業員を見つける必要があります。
sp_MSforeachdbの使用方法を理解しようとしている
sp_MSforeachdb
@command1 = 'select count(*) from employee'
別々のテーブルに出力することも、DB 名を持つ 1 つのテーブルに出力することもできます。
すべての DB を反復処理して、各従業員テーブルの行数を取得するにはどうすればよいですか? 各クライアントには独自の DB があり、各 DB で全従業員を見つける必要があります。
sp_MSforeachdbの使用方法を理解しようとしている
sp_MSforeachdb
@command1 = 'select count(*) from employee'
別々のテーブルに出力することも、DB 名を持つ 1 つのテーブルに出力することもできます。
最初に使用するデータベースを指定する必要があります (これは にあります?
)。
EXEC sp_MSforeachdb
@command1='use ?; select count(*) from employee'
どうですか
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'' はオプションです...