您的位置:首页 > 其它

两个数据表同步的触发器

2013-11-23 14:39 127 查看
假如有两个表,TableName1和TableName2,

两个表字段相同,都是有一个fID(TableName1表为标识,自动+1,TableName2表设置为普通字段),

和一个varchar类型的content两个字段。

现在要实现TableName2作为TableName1的备份,对TableName1的所有修改(增、删、改)都要对TableName2同时生效。

可以使用以下触发器

CREATE TRIGGER TableName1_SNY_TO_TableName2 ON TableName1

FOR INSERT, UPDATE, DELETE

AS

delete TableName2 where fID in (select fID from deleted)

insert TableName2 select * from inserted

GO

即可保证同步两个表的内容。

关键字: 如何自增字段中插入指定值
sqlserver 批量插入记录时,对有标识列的字段要设置 set IDENTITY_INSERT 表名 on,然后再执行插入记录操作;插入完毕后恢复为 off 设置

格式:
set IDENTITY_INSERT 表名 on
set IDENTITY_INSERT 表名 off

举例:

set IDENTITY_INSERT peoplePworkpositiontype on
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(1 , '平台' , 1 )
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(2 , '陆地' , 2 )
insert peoplePworkpositiontype(id,workpositiontype,workpositiontypeid) values(3 , '海上' , 3 )

go
set IDENTITY_INSERT peoplePworkpositiontype off

set IDENTITY_INSERT peoplePstatetype on
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(1 , '出海' , 1 )
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(2 , '出差' , 2 )
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(3 , '公司' , 3 )
insert peoplePstatetype(id,nowstatetype,nowstatetypeid) values(4 , '会议' , 4 )
go
set IDENTITY_INSERT peoplePstatetype off
go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: