分别创建增加, 删除, 更新的触发器 (Trigger) 来达到两张表之间数据同步的目的.
1: 数据同步增加:
如有两张表 --A 表和 B 表, 创建触发器使当 A 表插入数据后 B 表也同步插入数据. 其中 B 表插入数据的字段需要同 A 表中的字段相对应.
CREATE TRIGGER 触发器名称
ON A 表
- AFTER INSERT
- AS BEGIN INSERT INTO
B 表(B 表字段 1,B 表字段 2,B 表字段 3)
SELECT A 表字段 1,A 表字段 2,A 表字段 3
- FROM INSERTED
- END
2. 数据同步删除:
如有两张表 --A 表和 B 表, 创建触发器使当 A 表删除数据后 B 表也同步删除数据. 其中 B 表与 A 表应有相应主键关联.
CREATE TRIGGER 触发器名称
ON A 表
AFTER DELETE
AS BEGIN DELETE B 表
WHERE
B 表主键 IN(
SELECT A 表主键
- FROM DELETED)
- END
3. 数据同步更新:
如有两张表 --A 表和 B 表, 创建触发器使当 A 表数据更新后 B 表也同步更新数据.
CREATE TRIGGER 触发器名称
ON A 表
AFTER UPDATE
AS
update B 表
SET
B.B 表字段 1=A.A 表字段 1
FROM
B 表 AS B,INSERTED AS A
WHERE B.B 表主键 = A.A 表主键
理解触发器里面的两个临时的表: Deleted , Inserted . 注意 Deleted 与 Inserted 分别表示触发事件的表 "旧的一条记录" 和 "新的一条记录"
一个数据库教程系统中有两个虚拟表用于存储在表中记录改动的信息, 分别是:
Tables | 虚拟表 Inserted | 虚拟表 Deleted |
---|---|---|
新增时 | 存放新增的记录 | 不存储记录 |
修改时 | 存放用来更新的新记录 | 存放更新前的记录 |
删除时 | 不存储记录 | 存放被删除的记录 |
数据库中两张表之间的数据同步实现思路(增加, 删除, 更新)MySQL,sqlserver
来源: http://www.bubuko.com/infodetail-2900993.html