--允许进行系统表的操作

use master

declare @databasename varchar(255)

set @databasename='Blwy BarCode'

--1.如果用户库无法启动,打开sql server分析查询器,执行以下命令

EXEC  sp_configure 'allow update',1 reconfigure with override

--2.将数据库设置成紧急模式

UPDATE sysdatabases set status=-32768 where dbid=DB_ID(@databasename)

--3.创建日志文件dbcc rebuild_log (@databasename,'D:\Blwy BarCode_log.ldf')

--4.修改只允许DBO访问--sp_dboption @databasename,'dbo use only','false'

--5.验证数据库一致性

dbcc checkdb(@databasename)

--6.第5步失败,则

exec sp_dboption @databasename, N'single', N'true'   --将目标数据库置为单用户模式

dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb(@databasename,REPAIR_REBUILD)

exec sp_dboption @databasename, N'single', N'false'   --将目标数据库置为多用户模式

--7.恢复数据库的紧急模式

update sysdatabases set status=0 where name=@databasename
--8.恢复系统表操作的设置

exec sp_configure @databasename,0 reconfigure with override

05-28 23:22