如何暂停单个库的访问,而不影响整个SQL的运行?

zerg2001 2003-09-11 02:53:47
如何暂停单个库的访问,而不影响整个SQL的运行?

不暂停的话,无法还原库的备份。如果暂停SQL SERVER的话
又会影响其他库的用户操作。
...全文
58 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-09-13
  • 打赏
  • 举报
回复
用@SQL 和@TEMP 两个
变量存储命令,直接运行不行吗???



因为直接写不支持啊.
benxie 2003-09-13
  • 打赏
  • 举报
回复
学习中
zerg2001 2003-09-13
  • 打赏
  • 举报
回复
TO:txlicenhe(马可&不做技术高手)
是不是和事务的执行有关?
CoolAbu 2003-09-11
  • 打赏
  • 举报
回复
进入企业管理器=》实例名=》数据库名=》右键=》属性=》选项面板=》访问=》限制访问,这样一般用户都访问不了,你就可以把它Detach,恢复。

;)
zerg2001 2003-09-11
  • 打赏
  • 举报
回复
TO:txlicenhe(马可&不做技术高手)
老大,用你的方法实现了。

可否请教,为何用@SQL 和@TEMP 两个
变量存储命令,直接运行不行吗???
zerg2001 2003-09-11
  • 打赏
  • 举报
回复
TO:CrazyFor(蚂蚁)
数据库分离或脱机。。。。。。。。。。。。。

有用户访问不可脱机。
arrow_gx 2003-09-11
  • 打赏
  • 举报
回复
txlicenhe(马可&不做技术高手) 的方法可以做到暂停一次,但是如果你的数据库是实施访问比较频繁的话,是实现不了的,同时数据库也备份还原不了
CrazyFor 2003-09-11
  • 打赏
  • 举报
回复
数据库分离或脱机,但是这样后对这个库的操作就不行了,
arrow_gx 2003-09-11
  • 打赏
  • 举报
回复
SQL里没有提供这个功能,但是可以用变通的方法实现,

1、创建一个SA以外的用户,
2、在应用程序端已这个用户对数据进行访问
3、要暂停访问的时候,将这个用户对某个库的访问权限去掉,这样,就没有用户可以访问
你 要备份还原的数据库了,除了SA外
4、你用SA用户登陆,进行数据库备份还原操作

测试通过
txlicenhe 2003-09-11
  • 打赏
  • 举报
回复
use master
go
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
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
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end

--用法
use master
exec killspid '数据库名'

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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