急!!!vb+sql备份还原数据时出现的问题!

taoxinzhen 2008-06-08 12:14:43
备份成功,还原时出现未能找到存储过程kill51的错误.

'关闭用户进程,防止其他用户正在使用数据库,导致数据还原失败
SqlStr = "Select spid from master..sysprocesses where dbid=db_id('" & sDataBaseName & "')"
rs.Open SqlStr, cn, adOpenKeyset, adLockReadOnly
While rs.EOF = False
SqlStr = "kill" & rs(0)
cn.Execute SqlStr
rs.MoveNext
Wend
rs.Close

我想是sql server中没有这个存储过程,便找来一个.

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 =0
begin
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end

可是结果仍然提示未能找个存储过程kill51,请高手指教!
完整程序代码请参看:http://topic.csdn.net/u/20080605/16/43a6a333-ea06-4b64-a396-7b7fef2b7e9a.html.

...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
taoxinzhen 2008-06-20
  • 打赏
  • 举报
回复
多谢各位,已经解决。原来就是“kill”里面少了一个空格,这么简单的问题竟然出这么个提示,不知道这么搞得!
波导终结者 2008-06-12
  • 打赏
  • 举报
回复
接分
CathySun118 2008-06-12
  • 打赏
  • 举报
回复
应该是你的还原代码有问题,或者是没有独占数据库.
和你说的那个存储过程没有任何关系.
Fanks 2008-06-12
  • 打赏
  • 举报
回复
有一点不知道你考虑到没有,就是在恢复数据库的时候不能有任何连接到该数据库的连接,包括你的cn,这时需要把cn的数据库指向master,这样也不会出现“未能找到存储过程kill51的错误”
vansoft 2008-06-12
  • 打赏
  • 举报
回复
不看你的代码,上次给人做毕业设计写过一个。


反反复复好几次才成功。
dbcontrols 2008-06-11
  • 打赏
  • 举报
回复

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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