1
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”

感谢您的任何帮助、建议或意见

我感谢任何反馈

(在这种情况下不用担心安全风险)

4

1 回答 1

1

UPDATE这是withJOIN语句的经典案例:

UPDATE Table1
SET Table2.Value2 = Table1.Value1
FROM Table1 JOIN Table2 ON Table1.Column1 = Table2.Column2

有关更多详细信息,请参阅此链接:

使用连接的 SQL 更新查询如何在 SQL 中使用 JOIN 执行 UPDATE 语句?

编辑:

如果您想更新多个表 - 因为您不能在一个语句中更新多个表 - 您将必须针对您希望更新的每个表运行此代码。

于 2013-10-08T15:03:43.400 回答