SQL サーバー (2005 以降) で複数のデータベースに対してクエリを実行する場合、システム データベース (マスター、モデル、tempdb、msdb、ディストリビューション) を除外する必要がある場合があります。
これら以外にこれらをフィルタリングする他の方法はありますか
where name not in (''master', 'model', 'tempdb', 'msdb', 'distribution')
sys.databases と master.dbo.sysdatabases を見てきました(同じではありません!)
[更新]ログ配布が有効になっているデータベースを探すために使用するクエリの例
select d.name, p.last_backup_date, s.secondary_server, s.secondary_database
from sys.databases d
left outer join msdb..log_shipping_primary_databases p on p.primary_database = d.name
left outer join msdb..log_shipping_primary_secondaries s on s.primary_id = p.primary_id
where name not in ('model','master','tempdb','distribution','msdb')
order by d.name
[更新] 他の誰かがより良い方法を持っていない限り、これは「最も悪い」方法のようですか?
SELECT * FROM
master.sys.databases AS dtb
WHERE (dtb.database_id < 5 or dtb.is_distributor = 1)