T-SQL で datetime を 1h づつインクリメントする

完全に備忘録。

use hoge
go

DECLARE @ID int
DECLARE @targetdate datetime
DECLARE CUR CURSOR LOCAL FOR
	SELECT ID FROM user.target

OPEN CUR
FETCH NEXT FROM CUR INTO @ID

SET @targetdate = '2011-1-1'
UPDATE user.target set target_field = @fromdate WHERE id = @ID

WHILE @@FETCH_STATUS = 0
BEGIN
 FETCH NEXT FROM CUR INTO @ID
 SET @targetdate = DATEADD(hour,1,@targetdate)
 UPDATE user.target set target_field = @targetdate WHERE OBJECTID = @ID
END

CLOSE CUR
DEALLOCATE CUR
GO