USE tempdb
GO
IF OBJECT_ID('history_data') IS NOT NULL
DROP TABLE history_data
GO
CREATE TABLE history_data
(DTIME DATE NULL,
A NVARCHAR(50) NULL,
B NVARCHAR(50) NULL,
C NVARCHAR(50) NULL,
cStyle NVARCHAR(10) NULL
)
GO
IF OBJECT_ID('realtime_data') IS NOT NULL
DROP TABLE realtime_data
GO
CREATE TABLE realtime_data
(DTIME DATE NULL,
A NVARCHAR(50) NULL,
B NVARCHAR(50) NULL,
C NVARCHAR(50) NULL
)
GO
--创建触发器
CREATE TRIGGER t_realtime_data
ON DBOrealtime_data
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements
SET NOCOUNT ON;
--将插入的行 或者是修改后的行保存
INSERT INTO history_data(DTIME,A,B,C,CSTYLE)
SELECT DTIME,A,B,C,'INSERTED' FROM INSERTED
--将删除的行 或者是修改前的行保存
INSERT INTO history_data(DTIME,A,B,C,CSTYLE)
SELECT DTIME,A,B,C,'DELETED' FROM DELETED
-- Insert statements for trigger here
END
GO
要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:
1、A表有数据更新的时候自动更新B表:
create or replace trigger tg after update on A for each row
begin
update B set xx=xx where baid = aid;
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去掉。
使用ajax,主要是使用javascript对网页进行局部刷新,当然还要结合服务端进行使用,无论你使用何种服务端语言,其原理都是一样的。具体的你可以再查查,说起来就太多了,网上应该有很多现成的例子,可以去参考下。
以上就是关于在sql server2005 一个数据库中的两个表 实时表中记录更新时 历史表中添加相应记录的触发器写法全部的内容,包括:在sql server2005 一个数据库中的两个表 实时表中记录更新时 历史表中添加相应记录的触发器写法、sql表数据自动更新、怎么让数据库里的东西在网页上实时更新等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)