将tsql插入转换为更新是否正确?

将tsql插入转换为更新是否正确?,tsql,Tsql,所以我将insert语句转换为update语句 这是插页 insert into Matches( SourceID, SourceUniqueID, ExtractionNumber, ItemID, MatchDate, MatchBy, MatchMethod) select m.SourceID ,m.SourceUniqueID ,m.ExtractionNum

所以我将insert语句转换为update语句

这是插页

    insert into Matches(
     SourceID,
     SourceUniqueID,
     ExtractionNumber,
     ItemID,
     MatchDate,
     MatchBy,
     MatchMethod) 
    select 
      m.SourceID 
     ,m.SourceUniqueID 
     ,m.ExtractionNumber 
     ,m.ExtractionNumber 
     ,getdate() 
     ,replace( suser_sname(),'Bob\','') 
     ,'EMTransmittalnumber' 
    from MatchData as m 
    where m.SourceID = 19
这是我到目前为止得到的update语句,但它正在生成一个错误

update m2 set 
   m2.SourceID = m.SourceID
 , m2.SourceUniqueID = m.SourceUniqueID
 , m2.ExtractionNumber = m.ExtractionNumber
 , m2.ItemID = m.ExtractionNumber
 , m2.MatchDate = getdate()
 , m2.MatchBy = replace( suser_sname(),'Bob\','')
 , m2.MatchMethod = 'EMTransmittalnumber'
 from MatchData as m
    inner join Matches as m2
    m2.itemid = m.extractionnumber 
    where m.sourceid = 19
错误表示“m2”附近的语法不正确

有什么想法吗?

是的,您忘记了内部连接的“开”:

update m2 set  
   m2.SourceID = m.SourceID 
 , m2.SourceUniqueID = m.SourceUniqueID 
 , m2.ExtractionNumber = m.ExtractionNumber 
 , m2.ItemID = m.ExtractionNumber 
 , m2.MatchDate = getdate() 
 , m2.MatchBy = replace( suser_sname(),'Bob\','') 
 , m2.MatchMethod = 'EMTransmittalnumber' 
 from MatchData as m
    inner join Matches as m2 on
    m2.itemid = m.extractionnumber  
    where m.sourceid = 19