トランスログ・ファイルを1時間ごとにスタンバイ・モードのデータベースDBrestoreにリストアする必要があります。そこで、まずプロセスをすべて終了してからログファイルをデータベースに復元するジョブを作成しましたが、ジョブが失敗することがあります:プロセスID '71'アクティブなプロセスIDではなく、毎回プロセスIDが変化しますそれは失敗する。プロセス私は確信して、それが唯一のアクティブであるプロセスIDを取るにするには、このクエリで確認する必要がありますどのような変更プロセスID 'x'はアクティブなプロセス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
を殺すために、このクエリを使用して イム。下記のリンクで提供されるドキュメントには、事前
@maSTAShuFu、あなたのコメントは無用だった原因...その答えはかなり正しいと有効です。説明が不足していますが、それだけで十分なリソースやドキュメントを指し示すことはできます。 – Rahul
@EricHartmanご返信ありがとうございます。私は私の質問でステータスを使用して再試行します – Sql