未能在 sysindexes 中找到数据库 ID 7 中对象 ID 752509230 的索引 ID -1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE

-- 更改数据库选项,获取独占访问权限,每次只能有一个用户访问数据库。
EXEC sp_dboption 'BPos', 'single user', 'true' 
GO
USE BPos
GO

--没用
--DBCC CHECKDB('BPos', REPAIR_ALLOW_DATA_LOSS)
--DBCC CHECKDB('BPos', REPAIR_REBUILD)
--DBCC CHECKTABLE('sysindexes', REPAIR_ALLOW_DATA_LOSS)
--DBCC CHECKTABLE('sysindexes', REPAIR_REBUILD)
--DBCC CHECKTABLE('ls_POSClient_CheckStockRec', REPAIR_ALLOW_DATA_LOSS)
--DBCC CHECKTABLE('ls_POSClient_CheckStockRec', REPAIR_REBUILD)

--未启用对系统目录的特殊更新。系统管理员必须重新配置 SQL Server 以允许这种操作。
sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO

--需要根据实际情况分析,分析后,以下个表有问题

--正常情况下,会存在于sysobjects,sysobjects.ID存在于sysindexes
--而表ls_POSClient_CheckStockRec的sysobjects.ID在sysindexes中不存在
--ls_POSClient_PromotionMessage在 sysindexes中的first和root都存的不对
delete from sysobjects where type='u' and name='ls_POSClient_CheckStockRec'
delete from sysobjects where type='u' and name='ls_POSClient_PromotionMessage'
delete from sysindexes where id = 848509572

sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO

EXEC sp_dboption 'BPos', 'single user', 'false'
GO
 

猜你喜欢

转载自blog.csdn.net/llfwdd/article/details/82591060