系统视图sys.databases的collation_name 列为 NULL的问题

某开发人员遇到新建数据库无法访问的问题,原因是sys.databases视图中collation_name列值为NULL。通过SQL Server Profiler定位到问题,发现可能原因是数据库OFFLINE或设置为'AUTO_CLOSE'。调整数据库属性,关闭auto_close选项后,问题得到解决。
摘要由CSDN通过智能技术生成


今天接到一位开发同事报告说无法打开数据库列表。错误包括称:某个新建的DB没权限访问。但是其他的新建DB是没有包同样的问题,都可以正常使用。

根据情况我操作了一遍果然如此。思考了一下,未弄清什么回事。没有办法,启用法宝sql server profilter抓取sql。

 

拿到sql 以后发现,该数据库多出一下语句:

use [db_name]
SELECT dtb.collation_name AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version]
, dtb.compatibility_level AS [CompatibilityLevel] 
FROM master.sys.databases AS dtb where name = db_name()


 

通过这个语句的前一SQL语句发现原来,sys.databases系统视图中的collation_name 列的值为 NULL。

查看sql server 2008 帮助文档发现:(以下为摘自帮助文档)

sys.databases (Transact-SQL)

Microsoft SQL Server 实例中的每个数据库都对应一行。

如果数据库没有处于 ONLINE 状态,或者将 AUTO_CLOSE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值