返回首页 我的新博客

两个数据表同步的触发器

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

posted @ 2011-09-21 21:48  buffer的blogs  阅读(295)  评论(0编辑  收藏