请教一个触发器
第一张表DispatchLists ,有3个字段cInvCode ,cFree1 ,cDefine22
第二张表Inventory,有2个字段cInvCode ,cInvStd
DispatchLists.cInvCode =Inventory.cInvCode
当DispatchLists 表有增\改动作发生的时候,触发器生效,DispatchLists.cDefine22 这个字段
的内容=处理(Inventory.cInvStd+DispatchLists.cFree1) 这两个字段处理后的结果.
处理的要求是,我举个例子,有一行数据新增
表ID DispatchLists.cInvCode DispatchLists.cFree1 DispatchLists.cDefine22
1EDRFWPOQJ 101001 60
Inventory.cInvCode Inventory.cInvStd
101001 AA50-S-D
那么触发器触发后表ID为1EDRFWPOQJ的行DispatchLists.cDefine22的值更新为
AA50*60-S-D
这个处理的方式我用文字描述一下大致是Inventory.cInvStd字符串中出现数字之后,
将DispatchLists.cFree1 字段的字符串嵌入进去,并且要加一个符号“*”
不知道能否实现这个触发器,谢谢大家。
------解决方案--------------------
SQL code
CREATE TRIGGER xx ON DispatchLists
FOR INSERT,UPDATE
AS
BEGIN
UPDATE t1
SET t1.cDefine22 = left(t2.cInvStd,CHARINDEX('-',t2.cInvStd)-1)+'*'+t3.cFree1+RIGHT(t2.cInvStd,len(t2.cInvStd)-(CHARINDEX('-',t2.cInvStd)-1))
FROM DispatchLists t1 JOIN Inventory t2 ON t1.cInvCode = t2.cInvCode
JOIN INSERTED t3 ON t1.主键= t3.主键
WHERE CHARINDEX('-',t2.cInvStd) > 0
END