2016-10-10 8 views
2

テーブルは開始時間、現在までの時間、終了時間列で構成されていますので、今までの時間をすべての行に対して計算したいのですが、行、私はすべての行に影響を与えたい。多くの行に影響を与えるプロシージャを作成したい

コード:

create procedure timetillnow 
declare @starttime time, 
@nowtime time, 
@diff time 

select @starttime = starttime from schedule 
select @nowtime = GETDATE() 

select @diff = DATEDIFF(MINUTE,@starttime,@nowtime) 

update schedule set timetillnow = @diff 
+0

私はこれを聞かせてください、単純にTimeTillNow列を更新するストアドプロシージャを作成しようとしていますか? –

+0

はいそれぞれの行の現在までの時間を計算し、 –

答えて

1

だけwhere句を使用せずに、単一のUPDATE文でそれを行う:

update schedule set timetillnow = DATEDIFF(MINUTE,starttime,getdate()) 

これは、テーブル内のすべての行を更新します。

+0

を更新すると、これは同じ値のtimetillnow列を更新します。計算の各値を各行に更新します –

+0

いいえ:試してください。 – Blorgbeard

関連する問題