sql - 当我更新另一个表中的字段时更新表中的字段
问题描述
我有 2 张桌子 -A
和B
. 我在 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
也会更新。我怎么能做这样的事情?
解决方案
您可以为此目的使用触发器,例如:
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
推荐阅读
- java - 有没有办法使用 OCR(可以使用 python 或 java + linux 终端)进行实时操作?
- node.js - 无法让 AWS lambda 等待异步请求调用完成
- highcharts - 如何更改highcharts中旭日形图右上角的向下钻取按钮的标题?
- python - 来自谷歌云视觉 API OCR 的逐行数据
- javascript - 如何在 JavaScript 中将纯文本转换为 Json 对象
- git - CVS2GIT 迁移失败 - 致命:标记:6885 未声明
- spring - 如何在 Spring Boot 配置中显式传递数据库名称?
- angularjs - ng-repeat:通过指令忽略多次插入相同的角度模板
- ios - 如何使用 swift 4 使用 post 功能将图像文件发送到服务器
- python - Python 给出 ImportError: No module named sqlalchemy.util._collections in pycharm