当我运行 checkdb('mydb') 时,这是打印的唯一错误消息。
Msg 8992, Level 16, State 1, Line 1
Check Catalog Msg 3857, State 1: The attribute (clr_name=NULL) is required but is missing for row (assembly_id=1) in sys.assemblies.
它指的是 'Microsoft.SqlServer.Types' 我确实看到在这个数据库中 clr_name 是空白的。但是在主数据库下有一个值。
我试图删除或更改程序集以添加此值,但它受到限制。
顺便说一句,这个数据库最近从 sql-server 2005 更新到 2008R2。
在网上搜索了很多之后,我看到修复这种损坏的唯一选择是重新创建数据库对象并移动所有数据。
(或恢复备份,如果可用)