小编Sql*_*Sql的帖子

进程 ID 'x' 不是活动进程 ID

我需要将 trans 日志文件恢复到每 1 小时处于待机模式的数据库 DBrestore 中。所以我创建了一个作业,它首先杀死所有进程,然后将日志文件恢复到数据库中,但有时作业失败并给出以下错误:进程 ID '71' 不是活动进程 ID,进程 ID 每次都会更改它失败。我使用这个查询来终止进程

declare @sql as varchar(20), @spid as int
select @spid = min(spid)  from master..sysprocesses  
 where dbid = db_id('DBrestore') 
 and spid != @@spid    

while (@spid is not null)
begin
print 'Killing process ' + cast(@spid as varchar) + ' ...'
set @sql = 'kill ' + cast(@spid as varchar)
exec (@sql)

select 
    @spid = min(spid)  
from 
    master..sysprocesses  
where 
    dbid = db_id('DBrestore') 
    and spid != @@spid
end 
Run Code Online (Sandbox Code Playgroud)

我需要在此查询中进行哪些更改以确保它仅采用处于活动状态的进程 ID。

提前致谢

sql t-sql sql-server-2008-r2

2
推荐指数
1
解决办法
2858
查看次数

标签 统计

sql ×1

sql-server-2008-r2 ×1

t-sql ×1