这应该非常简单,但我想要做到这一点,因为我正在对一个实时数据库进行更改(它已备份)。
我从CSV文件中导入了一些列值到数据库表。
现在我只想从导入的源表(查询中的S)更新目标表(查询中的T)。
我收到错误:The multi-part identifier "T.account_manager_id" could not be bound.
update DADatabaseMarch2012.dbo.Campaign
set
T.[account_manager_id]=S.[account_manager_id]
,T.[campaign_status_id]=S.[campaign_status_id]
,T.[ad_manager_id]=S.[ad_manager_id]
,T.[advertiser_id]=S.[advertiser_id]
from
[zMarch12CampaignsRestore].[dbo].[March12Eom_Campaigns] S
inner join DADatabaseMarch2012.dbo.Campaign T ON S.id = T.id
答案 0 :(得分:6)
以这种方式编写,使用别名作为UPDATE的目标。
update T
set
[account_manager_id]=S.[account_manager_id]
,[campaign_status_id]=S.[campaign_status_id]
,[ad_manager_id]=S.[ad_manager_id]
,[advertiser_id]=S.[advertiser_id]
from
[zMarch12CampaignsRestore].[dbo].[March12Eom_Campaigns] S
inner join DADatabaseMarch2012.dbo.Campaign T ON S.id = T.id
答案 1 :(得分:4)
由于T是目标表,因此您不必在赋值(SET)的左侧对其进行别名。
答案 2 :(得分:1)
编辑:您需要在更新中引用与子句中相同的表。写“更新T”。