首页 > 解决方案 > 当我更新另一个表中的字段时更新表中的字段

问题描述

我有 2 张桌子 -AB. 我在 Table 有一个字段A,可以是 null 或某个值;和表 B 中的一个字段,它可以是 null 或某个值。两者都是nvarchar类型。

现在,我想要一种事件侦听器,每当 Table 中的该字段A更改值时,我希望将相同的值附加到 TableB字段的开头。

如果我想运行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值的记录。最终结果将是每当我更新该记录时,Table 中的 mtaching 记录B也会更新。我怎么能做这样的事情?

标签: sqlsql-server-2008

解决方案


您可以为此目的使用触发器,例如:

  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

推荐阅读