--建立过程 create proc bak_db @dbname varchar(100), @path varchar(100) as declare @strsql varchar(8000) set @strsql='' select @strsql=@strsql+'kill '+cast(spid as varchar)+char(10) from master..sysprocesses where dbid<>0 and db_name(dbid)=@dbname exec(@strsql) --假设还原完整数据库备份 set @strsql='restore database '+@dbname+' from disk = '''+@path+'''' exec(@strsql) go--调用过程(abc为数据名,abc.bak为备份文件) exec bak_db 'abc','D:\SQL Database\Test\abc.bak'--删除测试 drop proc bak_db
create proc bak_db
@dbname varchar(100),
@path varchar(100)
as
declare @strsql varchar(8000)
set @strsql=''
select @strsql=@strsql+'kill '+cast(spid as varchar)+char(10)
from master..sysprocesses
where dbid<>0 and db_name(dbid)=@dbname
exec(@strsql)
--假设还原完整数据库备份
set @strsql='restore database '+@dbname+' from disk = '''+@path+''''
exec(@strsql)
go--调用过程(abc为数据名,abc.bak为备份文件)
exec bak_db 'abc','D:\SQL Database\Test\abc.bak'--删除测试
drop proc bak_db