当我更新另一个表中的字段时,更新表中的字段

时间:2018-07-20 12:21:39

标签: sql sql-server-2008

我有2个表-AB。我在表A中有一个字段,该字段可以为null或某个值;表B中的一个字段,可以为null或某个值。两者均为nvarchar类型。

现在,我希望有一种事件侦听器,无论何时表A中的该字段更改值,我都希望将相同的值附加到表B字段的开头。

如果我想运行UPDATE语句,我会写:

UPDATE B
SET B.myValueFromB = A.myValueFromA + CONVERT(nvarchar(max),B.myValueFromB)
FROM 
A JOIN B on A.Ref_num = B.Task_num  
WHERE A.Ref_Num = --here is the problem

我在程序中有一个表单,用于用值更新具有特定A.Ref_num的记录。最终结果将是每当我更新该记录时,表B中的映射记录也会被更新。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以为此使用触发器:

  CREATE TRIGGER up_update_your_table
  ON Table_A FOR UPDATE
  AS
  --Your id field to find the corresponding record in the other table (Table B)
  DECLARE @ID VARCHAR(50)
  DECLARE @Value VARCHAR(50)

  SELECT @ID = YourIDFieldInTableA, @Value = YourValueFieldInTableA FROM Inserted 
  --Inserted returns the updated row


  UPDATE Table_B SET YourValueFieldInTableB = @Value WHERE YourIDFieldInTableB = ID