我知道到目前为止(至少MSsql 2005),系统数据库是master,model,msdb和tempdb.
据我所知,事实上,这并不能保证在将来得以保存. sys.databases视图和sys.sysdatabases视图都不会告诉我数据库是否被视为系统数据库.
解决方法
刚刚分入Microsoft.sqlServer.Management.Smo.
Database对象(由Microsoft本身提供!)
他们只是使用以下语句:
他们只是使用以下语句:
CAST(case when dtb.name in ('master','model','msdb','tempdb') then 1 else dtb.is_distributor end AS bit) AS [IsSystemObject]
简而言之:如果一个数据库命名为master,msdb或tempdb,那么它是一个系统db;
它也是系统db,如果视图sys.databases中的字段is_distributor = 1.
希望这可以帮助
吉米