Mi sono appena tuffato in Microsoft.SqlServer.Management.Smo.Database oggetto (fornito dalla stessa Microsoft!) Lo fanno semplicemente usando la seguente istruzione:
CAST(case when dtb.name in ('master','model','msdb','tempdb')
then 1
else dtb.is_distributor end AS bit) AS [IsSystemObject]
In breve:se un database si chiama master , model , msdb o tempdb , è un db di sistema; è anche un db di sistema, se il campo is_distributor = 1 nella vista sys.databases .
Spero che questo aiuti
Jimmy