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

历史表为history_data实时表为realtime_data,两个表中的字段相同分别为time、a、b、c。实时表中数据变化时,在历史表中添加一条相应的记录的触发器... 历史表为 history_data 实时表为 realtime_data ,两个表中的字段相同 分别为 time、a 、b、c。实时表中数据变化时,在历史表中添加一条相应的记录的触发器写法。 展开
 我来答
ttpsan520
2013-06-01 · TA获得超过404个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:313万
展开全部
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  DBO.realtime_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
更多追问追答
追问
CSTYLE是什么?
这一句中 INSERT INTO history_data(DTIME,A,B,C,CSTYLE)
SELECT DTIME,A,B,C,'INSERTED' FROM INSERTED
的 'INSERTED' FROM INSERTED是何意?
我这'INSERTED' 为红色。。
追答
这是我帮你加的一个标识啊,你要追踪修改记录么,你肯定要知道修改前是什么样子,修改后是什么样子吧,CSTYLE= 'DELETED' 的表示 被删除的项 或者是 修改之前的数据,CSTYLE='INSERTED'表示 新增加的数据或者是 修改后的数据

本来就是红色的啊,这个百度显示颜色有问题的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式