Table1 Column1 Value1 Table2 Column2 Value2
-------------------------------------------------------------------
tbl_start DESC blue tbl_end Description red
tbl_job JOB Doctor tbl_role JOB Surgeon
我正在尝试创建一个SQL存储过程,它将根据映射表更新表(我已经创建了上面的一个作为示例)
我尝试了一些变体,但似乎无法理解查询的编写方式
例如:
UPDATE @TABLE2 SET @Column2 = @Value2 Where @Value2 = @Value1
所以说tbl_end在Description列中的值为'blue',在存储过程运行后它应该已经将'blue'的所有实例更新为'red'
同样地,如果tbl_role在JOB列中的值为'Doctor',则在存储过程运行后,它应该将'Doctor'更改为'Surgeon'
感谢您提供任何帮助,建议或意见
我感谢任何反馈
(在这种情况下不担心安全风险)
答案 0 :(得分:1)
这是UPDATE
JOIN
声明的经典案例:
UPDATE Table1
SET Table2.Value2 = Table1.Value1
FROM Table1 JOIN Table2 ON Table1.Column1 = Table2.Column2
有关详细信息,请参阅此链接:
SQL update query using joins, How can I do an UPDATE statement with JOIN in SQL?
修改强>
如果您想要更新多个表 - 因为您无法在一个语句中更新一个表 - 您必须针对您要更新的每个表运行此代码。