0

这应该很简单,但我想把它做对,因为我正在对实时数据库进行更改(它已备份)。

我将一些列值从 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
4

3 回答 3

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
于 2012-04-12T19:48:50.517 回答
4

由于 T 是目标表,因此您不必在分配(SET)的左侧为其命名。

于 2012-04-12T19:49:53.120 回答
1

编辑:您需要在更新中引用与 from 子句中相同的表。写“更新T”。

于 2012-04-12T19:48:15.150 回答