怎样让数据库处于单用户模式下?又怎样恢复多用户模式呢

tyy_yun 2003-06-01 03:07:47
DBCC CHECKDB( 'TESTTEMP',REPAIR_ALLOW_DATA_LOSS)
用该语句修复数据库的一些错误
运行错误是:未处理修复语句.数据库需要处于单用户模式下.

我想问一下怎样让数据库处于单用户模式下?又怎样恢复多用户模式呢?
急~~~

...全文
1356 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kfcn 2003-06-01
  • 打赏
  • 举报
回复
谢谢又学到了一点存储过程+游标
j9988 2003-06-01
  • 打赏
  • 举报
回复
use master
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 '数据库名'

然后再执行上面的语句!
tyy_yun 2003-06-01
  • 打赏
  • 举报
回复
不行.因为数据库有多个用户在使用,状态不能改变!
j9988 2003-06-01
  • 打赏
  • 举报
回复
USE master
EXEC sp_dboption 'TESTTEMP', 'single user', 'TRUE'
go

DBCC CHECKDB( 'TESTTEMP',REPAIR_ALLOW_DATA_LOSS)
go

EXEC sp_dboption 'TESTTEMP', 'single user', 'false'
go
tyy_yun 2003-06-01
  • 打赏
  • 举报
回复
这个数据库当前有许多用户在用的:( 是不是就没有办法改变状态呢?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧