【问题标题】:Error in update query: Incorrect syntax near '='更新查询中的错误:“=”附近的语法不正确
【发布时间】:2016-07-19 05:23:33
【问题描述】:

试图运行一个简单的更新查询,但它在第 5 行抛出以下错误

update t3
set t3.Act_Flg = 'N', t3.ActiveEndDate = getdate()
from dbo.STG_EmployeeMaster_TEMP t3 
inner join dbo.TEMP_EmployeeMaster t1 on t3.GPN = t1.GPN, t3.Name = t1.Name
where t1.RecordChangedFlag = 'Y' 

它正在抛出一个错误:

“=”附近的语法不正确。

我没有得到错误在哪里?

【问题讨论】:

  • join 在两个条件下应该使用and 而不是, 来分隔
  • “不知道为什么它不喜欢逗号” - 因为它的语法不正确 - 请改用AND
  • join 条件必须简化为布尔值 true(包括连接的记录)或 false(排除记录)。究竟应该如何评估t3.gpn=t1.tpn, t3.name=t1.nametrue,false 是什么?
  • @xbb - andor 取决于意图,无论如何。

标签: sql sql-server


【解决方案1】:

使用 AND。

update t3
set t3.Act_Flg='N', t3.ActiveEndDate=getdate()
from dbo.STG_EmployeeMaster_TEMP t3 INNER join dbo.TEMP_EmployeeMaster t1
on t3.GPN=t1.GPN and
t3.Name = t1.Name
where t1.RecordChangedFlag='Y' 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 2017-02-26
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多