BACKUP DATABASE educational to disk = '"+addr+"' WITH FORMAT
备份的路径存放在表backdate里,
id name time
1 e:\liu 2008-04-08
3 f:\aaa 2008-04-08
8 c:\567 2008-04-29
如何恢复这个备份,越简单越好!
用restore DATABASE educational from disk = '"+addr+"' 恢复时报错:
服务器: 消息 3101,级别 16,状态 1,行 1
因为数据库正在使用,所以未能获得对数据库的排它访问权。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。
我是在java代码里执行的请问要如何改?谢谢,非常感谢!
备份的路径存放在表backdate里,
id name time
1 e:\liu 2008-04-08
3 f:\aaa 2008-04-08
8 c:\567 2008-04-29
如何恢复这个备份,越简单越好!
用restore DATABASE educational from disk = '"+addr+"' 恢复时报错:
服务器: 消息 3101,级别 16,状态 1,行 1
因为数据库正在使用,所以未能获得对数据库的排它访问权。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。
我是在java代码里执行的请问要如何改?谢谢,非常感谢!
--关闭用户进程处理 declare @spid varchar(20)
declare #spid cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #spid
fetch next from #spid into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #spid into @spid
end
close #spid
deallocate #spid
USE master
declare @spid varchar(20)
declare #spid cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #spid
fetch next from #spid into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #spid into @spid
end
close #spid
deallocate #spid
是库名吗?改成我的库名不可以啊
db_id('educational')
如果要用java的jdbc调用,上面的代码要怎么执行呢,写成存贮过程吗?
restore DATABASE educational from disk = '"+addr+"'
JDBC中能直接执行的只有select\delete\insert\update、exec吧这样的话写成存储过程!
《sql server 数据库的备份与恢复》
微软特约资深讲师 毛颉
http://topic.csdn.net/u/20080509/11/70ac59bd-d219-45c7-85ec-9d355398642c.html
declare #spid cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #spid
fetch next from #spid into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #spid into @spid
end
close #spid
deallocate #spid