打开SQL Server托管实例数据库属性时遇‘子查询返回多值’错误
解决SQL Server Managed Instance数据库属性窗口报错问题
问题描述
打开SQL Server托管实例的数据库属性窗口时,弹出错误提示:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. (.Net SqlClient Data Provider)
已执行以下脚本删除备份历史,但问题未解决:
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N’<DBName>’
排查与解决步骤
- 检查并清理数据库扩展属性:自定义扩展属性异常可能导致属性窗口查询出错。先查看所有扩展属性:
若发现异常条目,执行删除(替换占位符后运行):SELECT * FROM sys.extended_properties WHERE major_id = DB_ID('<DBName>')EXEC sys.sp_dropextendedproperty @name = N'异常属性名', @level0type = N'DATABASE', @level0name = N'<DBName>' - 清理关联作业历史:msdb中该数据库的作业历史可能存在重复或异常记录,执行清理:
EXEC msdb.dbo.sp_delete_jobhistory @database_name = N'<DBName>' - 检查数据库元数据一致性:用DBCC命令排查元数据损坏:
DBCC CHECKDB('<DBName>') WITH NO_INFOMSGS, ALL_ERRORMSGS - 升级SSMS版本:旧版SSMS对托管实例的属性查询可能存在兼容性问题,更换最新版SSMS重试。
内容的提问来源于stack exchange,提问作者Rap
相关产品推荐
相关产品推荐

