在sql server2005 一个数据库中的两个表 实时表中记录更新时 历史表中添加相应记录的触发器写法

在sql server2005 一个数据库中的两个表 实时表中记录更新时 历史表中添加相应记录的触发器写法,第1张

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

sql表数据自动更新

要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:

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表数据自动更新、怎么让数据库里的东西在网页上实时更新等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9485497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存