USE MASTER GOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='DBName' Gosp_dboption 'DBName', 'single user', 'true' Goupdate sysdatabases set status =28 where name='DBName' Gosp_configure 'allow updates', 0 reconfigure with override Go sp_dboption 'DBName', 'single user', 'false' GoDBCC CHECKDB('DBName') GO
1、修改数据库为紧急模式ALTER DATABASE 数据库名 SET EMERGENCY2、使数据库变为单用户模式ALTER DATABASE 数据库名 SET SINGLE_USER3、修正数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象不正确。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修正报告的不正确。但是,这些修正可能会导致一些数据丢失。 DBCC CheckDB (数据库名 , REPAIR_ALLOW_DATA_LOSS)4、使数据库变回为多用户模式ALTER DATABASE 数据库名 SET MULTI_USER
[Quote=引用 6 楼 awaly 的回复:] SQL code1、修改数据库为紧急模式ALTER DATABASE 数据库名 SET EMERGENCY2、使数据库变为单用户模式ALTER DATABASE 数据库名 SET SINGLE_USER前两步骤是对的,在更改为单用户模式之后运行DBCC CHECKDB看报什么错误,然后再做处理(到时候可以把错误贴出来)。因为使用DBCC with REPAIR_ALLOW_DATA_LOSS会导致数据丢失,可能会导致系统数据逻辑出现问题。建议发行那个表信息出问题之后可以讲所有数据导出来,然后再修复。 另外DBCC with REPAIR_ALLOW_DATA_LOSS不是万能的,有些错误也无法修复(比如系统信息损坏)。
多大的库?有些情况你直接附加即可.成功后DBCC CHECKDB一下按你搜索的可以解决.
GOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='DBName'
Gosp_dboption 'DBName', 'single user', 'true'
Goupdate sysdatabases set status =28 where name='DBName'
Gosp_configure 'allow updates', 0 reconfigure with override
Go sp_dboption 'DBName', 'single user', 'false'
GoDBCC CHECKDB('DBName')
GO
SQL code1、修改数据库为紧急模式ALTER DATABASE 数据库名 SET EMERGENCY2、使数据库变为单用户模式ALTER DATABASE 数据库名 SET SINGLE_USER前两步骤是对的,在更改为单用户模式之后运行DBCC CHECKDB看报什么错误,然后再做处理(到时候可以把错误贴出来)。因为使用DBCC with REPAIR_ALLOW_DATA_LOSS会导致数据丢失,可能会导致系统数据逻辑出现问题。建议发行那个表信息出问题之后可以讲所有数据导出来,然后再修复。 另外DBCC with REPAIR_ALLOW_DATA_LOSS不是万能的,有些错误也无法修复(比如系统信息损坏)。