执行语句
sp_dboption 'test','single user','true'
Go
DBCC CHECKDB('test',REPAIR_ALLOW_DATA_LOSS)
Go
sp_dboption 'test', 'single user','false' 提示信息
服务器: 消息 7919,级别 16,状态 2,行 2
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
但从查询分析器那里看 显示 test(单个用户)
sp_dboption 'test','single user','true'
Go
DBCC CHECKDB('test',REPAIR_ALLOW_DATA_LOSS)
Go
sp_dboption 'test', 'single user','false' 提示信息
服务器: 消息 7919,级别 16,状态 2,行 2
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
但从查询分析器那里看 显示 test(单个用户)
Go 你这语句没执行?
DBCC CHECKDB('avon')的话可以,会提示一些索引的错误,我是想让他修复一些错误。加上后面的参数
REPAIR_ALLOW_DATA_LOSS 就不行了。
go
--建一个存储过程,断开所有用户连接。
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1
begin
exec('kill '+@spid)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end
go
--用法
use master
exec killspid '数据库名'
然后再执行上面的语句!不知道这样行不行。try
use master
go
DBCC CHECKDB('test',REPAIR_ALLOW_DATA_LOSS)
go
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
这种问题
use master
go
-- 检查数据库的状态
select (case when status=4096 then 'single user' else 'others' end) from sysdatabases where [name]='test'
-- 正在检查使用 test 数据库的会话
select spid,loginame,cmd from sysprocesses where dbid=db_id('test')
这个结果是 other 另一个没有记录,, 应该是单用户模式,不明白为什么还提示
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
是不是什么地方设置不正确啊?
不过建议 lz 重新使用此语句将 test 数据库至于单用户模式。USE MASTER
GO
ALTER DATABASE test SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
我的结果是:1.others
2.spid loginame
怎么说