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