怎么通过SQL里的作业为备份的数据库每天2点定时还原

2024年11月23日 06:18
有2个网友回答
网友(1):

在master下建立杀进程的存储过程

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

在数据库服务器-》企业管理器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程或语句,在“调度”里面填写什么时间执行

代码是先:
USE master

exec killspid '数据库名'
再:
restore database 数据库名 from disk='c:=\test.bak' with REPLACE

网友(2):

restore database northwind from disk='d:\northwind.bak'
在作业里执行这样一句话就行了