sql-server-2005 – SQL Server:如何判断数据库是否是系统数据库?

前端之家收集整理的这篇文章主要介绍了sql-server-2005 – SQL Server:如何判断数据库是否是系统数据库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道到目前为止(至少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.

希望这可以帮助

吉米

猜你在找的MsSQL相关文章