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