Jas*_*onV 2 sql t-sql sql-server
我有一个测试 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
Run Code Online (Sandbox Code Playgroud)
您的查询过于复杂。一个人UPDATE就是你所需要的。
UPDATE Call
SET Timestamp = DATEADD(day,1,Timestamp)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1899 次 |
| 最近记录: |