两个数据表同步的触发器

 假如有两个表,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  

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注