-4

我们如何使用单个 sql 查询更新两个表?

假设我有两张桌子

1. Employee

empid  empname     salary
00001   Vijay      100000
00002   Alex       200000
00003   Jennifer   300000


2. Institute

regno    State        Country
123ab    Texas          USA
231nf    California     USA

那么我们如何更新这两个表假设我想更新“Employee”表的“empid”00001 的“salary”字段和 Institute 表的“regno”123ab 的“State”字段。

4

4 回答 4

3
  1. 如果是相关数据,你可能可以做一个JOIN.
  2. 如果不是,您可能不是在寻找 1 个查询,而是 1 个交易
  3. 如果您仍然需要它是 1 调用,请定义一个过程
于 2013-10-17T18:49:49.307 回答
1
BEGIN TRANSACTION
query1;
query2;
COMMIT
于 2013-10-17T18:50:02.410 回答
0

您可以创建一个更新 Employee 然后更新 Institute 的存储过程,这样您的单个查询将是:

exec spUpdateEmployeeTableAndInstituteTable
于 2013-10-17T18:48:39.143 回答
0

它实际上可以在一个查询中完成:

UPDATE Employee e, Institute i
SET e.salary = <new salary>,
    i.state = <new state>
WHERE e.empid = '00001'
AND i.regno = '123ab'
于 2013-10-17T18:56:38.463 回答