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