Acabo de sumergirme en Microsoft.SqlServer.Management.Smo.Database objeto (¡que es proporcionado por el mismo Microsoft!) Simplemente hacen esto usando la siguiente declaración:
CAST(case when dtb.name in ('master','model','msdb','tempdb')
then 1
else dtb.is_distributor end AS bit) AS [IsSystemObject]
En resumen:si una base de datos se llama master , model , msdb o tempdb , ES una base de datos del sistema; también es una base de datos del sistema, si el campo is_distributor = 1 en la vista sys.databases .
Espero que esto ayude
Jimmy