现有两张表 T1 和 T2
T1有字段 A1 A2 A3
T2有字段 A1 B2 B3
现在要解决如下问题:
A1都是主键相关连,一一对应。
当T1表中的A2被修改后自动将A2列的数据追加到T2表的B2列后面,条件为T1表的A1等于T2表的A1。
------解决方案--------------------
现有两张表 T1 和 T2
T1有字段 A1 A2 A3
T2有字段 A1 B2 B3
现在要解决如下问题:
A1都是主键相关连,一一对应。
当T1表中的A2被修改后自动将A2列的数据追加到T2表的B2列后面,条件为T1表的A1等于T2表的A1。
字符串的追加 比如说:我在T1表A2里输入了A2C这个值,那么T2表的A2就自动变为A2C。如果T1表的A2里改为了C3C那么T2表的A2就要变为C3CA2c。
-------------
T1表A2里输入了A2C这个值
——能不能理解为INSERT一条新纪录
假设可以这样理解。Next:
那么T2表的A2就自动变为A2C
——A1都是主键相关连,一一对应,T2没有刚INSERT纪录对应的A1,A2怎么变,能不能理解为T1插入记录T2也跟着插入
假设可以这样理解。Work:
- SQL code
create trigger t1_inserton T1for insertasbeginset nocount oninsert T2 select * from INSERTEDset nocount offendgocreate trigger t1_updateon T1for updateasbeginset nocount on/*这样的逻辑要求,就算T2为varchar(8000),都有可能出现T2已经无法容纳的情况,系统就会提示“截断二进制数据或字符串”。*/update a set a.B2=b.A2+isnull(a.B2,'') from T2 a join INSERTED b on a.A1=b.A1set nocount offendgo