Właśnie zanurzyłem się w Microsoft.SqlServer.Management.Smo.Database obiekt (który jest dostarczany przez sam Microsoft!) Robią to po prostu za pomocą następującej instrukcji:
CAST(case when dtb.name in ('master','model','msdb','tempdb')
then 1
else dtb.is_distributor end AS bit) AS [IsSystemObject]
W skrócie:jeśli baza danych ma nazwę master , model , msdb lub tempdb , to JEST systemowa baza danych; jest to również systemowa baza danych, jeśli pole is_distributor = 1 w widoku sys.databases .
Mam nadzieję, że to pomoże
Jimmy