‘壹’ sql:如何每天定时更新一个表
方法比较多,SQLserver也好,oracle也好 都有定时执行的功能。针对SQLserver上可以在界面上设定好排程,然后写好update的sql就可以了。
‘贰’ sql 按时间范围更新数据
update table set rectime=(case(select 1 from table t2 where t2.id=id and t2.rectime> ='09:00' and t2.rectime<='12:00') when (1) then '09:00' else '17:50' end)
--该表如果有主键的话,以上的sql就可以实现你想要的效果,语句的作用是:当rectime在09:00-12:00之间,自动更新为09:00,其它的自动更新为17:50 ,也可以根据你的需求在做进一步case
‘叁’ sql表数据自动更新
sql表数据自动更新
要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:
1、A表有数据更新的时候自动更新B表:
create or replace trigger tg after update on A for each row
begin
update B set xx=xx where b.aid = a.id;
end;
/
2、A表插入数据时,B表更新数据:
create or replace trigger tgg after insert on A for each row
begin
insert B values(xxxx);
end;
/
如果不需要每条数据都跟新,只需要在每次A更新的时候更新B,可以将后面的for each row去掉。
‘肆’ sql创建一个存储过程,每天定时更新数据
既有输入又有输出,建议用函数完成。当然存储过程也是可以,只不过你在调用的时候,要用集把存储过程返回的数值接住。
‘伍’ SQL每天自动提取上一天数据更新表格
这个实现方法很多要看具体的环境,比如
1、程序开发的话,各种程序语言都有相关的处理
2、ms sqlserver数据库服务器上,有SQL代理的维护计划或job
‘陆’ sql一个表每日做更新。根据某一关键字段查找出修改的数据
IF Update(GroupJobNo)
begin
declare @OldNo nvarchar(30),@NewNo nvarchar(30)
select @OldNo=IsNull(GroupJobNo,'') from deleted
select @NewNo=IsNull(GroupJobNo,'') from Inserted
if (IsNull(@OldNo,'')<>'') and (IsNull(@OldNo,'')<>IsNull(@NewNo,''))
begin
update CT_Job set GroupJobNo=@NewNo where GroupJobNo=@OldNo
end
end;