微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

希望这可以帮助

吉米

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐