При выполнении запроса к нескольким базам данных на сервере SQL (2005+) иногда бывает необходимо исключить системную базу данных (master, model, tempdb, msdb и дистрибутив)
Есть ли ДРУГОЙ способ отфильтровать их, кроме
where name not in (''master', 'model', 'tempdb', 'msdb', 'distribution')
Я посмотрел на sys.databases и master.dbo.sysdatabase (не то же самое!)
[ОБНОВЛЕНИЕ] пример запроса, который я использую для поиска баз данных, для которых включена доставка журналов
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)