SQL更新触发插入另一张表时,主键问题

有表A,B,
A里面的字段

ID,nvarchar(9),主键(不是自增列)

SP,varchar(2),

F1,varchar(20),

F2,varchar(20),

F3,varchar(20),

F4,varchar(20), 编码

F5,datatime,

F6,numeric(16,2)

表B字段

ID,nvarchar(9),主键(不是自增列)

SP,varchar(2),
F1,varchar(20), 编码

F2,varchar(20),

F3,varchar(20),

F4,datatime,

F5,numeric(16,2)

表A的SP字段更新值为2时触发,检查当前更新行的F4编码是否在表B F1字段中存在,存在时更新表B,使得:

B_F2=A_F2,

B_F4=A_F5,

B_F5=A_F6,where B_F1=更新行A_F4

如果表A更新行的F4不存在表B中时,在B中插入一行,使得:

B_F2=A_F2,

B_F4=A_F5,

B_F5=A_F6,

B_F1=A_F4

这里用insert into select,但是ID列就不行了,A_ID不能直接等于B_ID,还有其他表的数据会生成到表B中。求大神。

字段类型,表都不能改。编码是字母加流水号

主键你可以自己编写一个动态编号规则,按照其他的编号规则生成,就比如原来是ABC这种头的,换成CBA这样也行,生成不一样就不会重复