I wanna update remote table with following code but I encounter this error:
`Msg 208, Level 16, State 1, Line 12
Invalid object name 'f1'.`
code:
declare @temp table
(
co_kargah bigint,
code_ostan nvarchar(10)
)
insert into @temp
select co_kargah,code_ostan
from Tbl_ghireHadese_Temp
where InsUpKey=2
update f1 /* Error location*/
set
f1.modate_mogharar=tbl_ghireHadese.modate_mogharar,
f1.t_pm_mogharar=tbl_ghireHadese.t_pm_mogharar
from openquery([lnkworkersystem],'select * from Bazresi_Kar.dbo.Tbl_ghireHadese') f1
inner join @temp temp
on temp.co_kargah=f1.co_kargah
and temp.code_ostan=f1.code_ostan
and temp.t_bazresiFE=f1.t_bazresiFE
inner join tbl_ghireHadese
on temp.co_kargah=tbl_ghireHadese.co_kargah
and temp.code_ostan=tbl_ghireHadese.code_ostan
and temp.t_bazresiFE=tbl_ghireHadese.t_bazresiFE
The error is in the SET clause. You can’t specify aliases in the column assign. There is no need because you’ve already told SQL Server what table in the UPDATE clause
Should be:
Note: SQL Server doesn’t always give the correct line number for errors
Edit: use 4 part object names as normal tables
Also, your temp table has 3 columns in the JOIN but is only defined with 2.
t_bazresiFEis missing. So it will error again…