向SQL中的每行添加1天

向SQL中的每行添加1天,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个测试SQL Server数据库,其中包含有关呼叫中心接收到的呼叫的数据。每个调用都有一个时间戳,在我的测试数据库中,我想在每行的时间戳字段中添加一天。我希望每天使用一个计划的作业来完成这项工作,这样数据从应用程序的角度来看仍然是新鲜的。到目前为止,我所做的似乎并没有很好地执行,因为进程不断地进入暂停状态。我绝对不是SQL专家,我觉得可能有更好的方法来实现这一点。有人能帮我吗 BEGIN TRANSACTION [CallMover] declare @call_id int decla

我有一个测试SQL Server数据库,其中包含有关呼叫中心接收到的呼叫的数据。每个调用都有一个时间戳,在我的测试数据库中,我想在每行的时间戳字段中添加一天。我希望每天使用一个计划的作业来完成这项工作,这样数据从应用程序的角度来看仍然是新鲜的。到目前为止,我所做的似乎并没有很好地执行,因为进程不断地进入暂停状态。我绝对不是SQL专家,我觉得可能有更好的方法来实现这一点。有人能帮我吗

BEGIN TRANSACTION [CallMover]

declare @call_id int
declare @call_time DateTime

BEGIN TRY

select @call_id = MIN (ID) from Call

while @call_id is not null
begin
    select @call_time = TimeStamp from Call where ID = @call_id
    update [dbo].[Call] set TimeStamp = DATEADD(DAY, 1, @call_time)
    select @call_id = MIN (ID) from Call where ID > @call_id
end

COMMIT TRANSACTION [CallMover]

END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION [CallMover]
END CATCH

GO

你的问题太复杂了。只需一次
更新

UPDATE Call
  SET Timestamp = DATEADD(day,1,Timestamp)

表中有多少行?为什么不简单地为所有行执行update[dbo].[Call]set TimeStamp=DATEADD(DAY,1,TimeStamp)它们大约有40000行。@jason.venema 40000对我来说听起来不多,这很有效。告诉过你我不是SQL专家。Noob是一个更好的术语。谢谢大家。