問題來由:
在三豐物貿的項目中,有個關鍵的處理就是還原備份資料庫 由于使用java來實作是以必須 運用sql語句來解決
在備份還原資料庫的時候竟然出現了問題:
在網上找了好久基本上是些沒用的東西!!
還好csdn上問了專家!一下ok!
我的操作如下:
1:sql 語句備份資料庫:
back database inoutsell
to disk = 'd:/mydatabase.bak'
with format,
name = 'full back of inoutsell'
go
描述:将資料庫inoutsell資料庫備份為d盤目錄下mydatabase.bak檔案
2:sql 語句還原資料庫:
use inoutsell
restore database inoutsell
from disk = 'd:/mydatabase.bak'
with replace
描述:
将inoutsell資料庫還原還原的檔案在為d盤目錄下的mydatabase.bak檔案
3:出現這個問題是,怎麼回事?
表示資料庫正在使用,未能獲得對資料庫的排它通路權。怎麼解決?
4:檢視手冊沒有找到合适的:
5:上google查沒有結果!!太雜了
=======================================
6: 上csdn上面問:10分鐘解決!爽
方式1:
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
exec('kill '+@spid)
end
close getspid
deallocate getspid
--用法
use master
exec killspid '資料庫名'
方式2:
create proc killspid(@dbname varchar)
as begin
declare @sql varchar
declare @spid int
set @sql = 'declare currentid cursor for
select spid from sysprocess where dbid = db_id('''+@dbname+''')'
fetch next from currentid into @spid
while @@fetch_status <> -1
begin
exec('kill '+@spid)
fetch next from currentid into @spid
end
close currentid
deallocate currentid
方案1 、2都可以用!!
希望整理出來的文章對大家有用!!