新しいジョブがデータベースに追加されたときに、SQL Serverによって作成されたdatetime
があります。ジョブがデータベースに追加されてから3時間後にログレベルが完了せず、一意のジョブIDを持つジョブのステータスを変更する必要があります。日時比較更新2列
これまで私がこれまで行ってきたことです。 (状況を確認せずに)
use DistributedComputing
if exists (select * from sys.objects where type = 'P' and name = 'proc_dc_timeout')
drop procedure proc_dc_timeout
go
create procedure proc_dc_timeout
AS
declare @JobID int
begin
if exists (select StartDate from Job where JobID = @JobID and DATEDIFF(hh,StartDate,GETDATE()) > 3)
update Job
set LogLevel = 1, Status = 'error'
end
go
execute proc_dc_timeout
しかし、私はクエリを実行しても何も影響はありません。助けてください
「日付時刻」には日付と時刻が含まれます。 'DATEDIFF'をチェックしてください。 – vulkanino
更新ステートメントには、おそらくwhere句が必要です。 if文を渡すと、**すべての**行が更新されます。 –