首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我需要在一个查询中更新两个表

我需要在一个查询中更新两个表
EN

Stack Overflow用户
提问于 2016-02-22 17:20:42
回答 2查看 56关注 0票数 0

我需要在一个查询中更新两个表。

请查找以下查询。

代码语言:javascript
代码运行次数:0
运行
复制
Update   
m_student_moreinfo 
INNER JOIN
  m_student 
ON
  m_student_moreinfo.studentID = m_student.id
SET m_student_moreinfo.MIAStartdate=GETDATE(),m_student.status='Clinical MIA'

where
  studentID IN
(
  Select 
    smi.studentID 
  FROM 
    dbo.m_student st
  INNER JOIN
    dbo.m_student_course sc
  on
    sc.studentID=st.id
  INNER JOIN
    dbo.m_student_classClinical  scl
  on
    scl.studentcourseID=sc.id
  INNER JOIN
    dbo.m_student_moreinfo smi
  on
    smi.studentID=st.id
  where 
    scl.startDate<=GETDATE() and scl.endDate >=GETDATE()
      and MIAStartdate IS NULL
)

我在Inner附近得到了不正确的语法。

EN

回答 2

Stack Overflow用户

发布于 2016-02-22 17:27:53

不能一次更新两个表,但可以使用OUTPUT INTO将更新链接到insert,并且可以使用此输出作为第二次更新的连接。有关详细信息,请参阅thisthat

因此,基本上您可以将其包装在事务中,并在所有更新步骤完成后提交。

票数 1
EN

Stack Overflow用户

发布于 2016-02-22 17:29:06

简单的回答:你不能。

您可以在一个事务中执行两个更新查询:

代码语言:javascript
代码运行次数:0
运行
复制
BEGIN TRANSACTION;
update query 1
update query 2
COMMIT;

那将为你做这项工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35549818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档