【问题标题】:SQL Server - Msg 4104 on UpdateSQL Server - 更新消息 4104
【发布时间】:2016-02-21 21:38:26
【问题描述】:

我正在使用 SQL Server 2008。我正在尝试根据另一个表中的值更新记录。我不断收到错误消息,提示无法绑定第 5 行和第 6 行的多部分标识符。根据我所阅读的内容,这似乎是一个别名问题,所以我没有使用任何别名,但我仍然卡住了。这是我的代码:

UPDATE [REPORTING].[Prod].[dbo].[patient_procedure]
SET [REPORTING].[Prod].[dbo].[patient_procedure].location_id=[REPORTING].[Prod].[dbo].[patient_encounter].location_id
FROM [REPORTING].[Prod].[dbo].[patient_encounter]
JOIN [REPORTING].[Prod].[dbo].[patient_procedure] 
ON [REPORTING].[Prod].[dbo].[patient_procedure].enc_id=[REPORTING].[Prod].[dbo].[patient_encounter].enc_id
WHERE [REPORTING].[Prod].[dbo].[patient_procedure].enc_id='5EFE0E0B-447E-4D64-ADAB-001D084914A5'

【问题讨论】:

  • 当然你已经检查了数据类型...

标签: sql sql-server sql-server-2008 join sql-update


【解决方案1】:

请试试这个查询。

  UPDATE [REPORTING].[Prod].[dbo].[patient_procedure] a
SET a.location_id=b.location_id
FROM [REPORTING].[Prod].[dbo].[patient_encounter] b
inner JOIN a
ON a.enc_id=b.enc_id
WHERE a.enc_id='5EFE0E0B-447E-4D64-ADAB-001D084914A5'

或者试试这个:::

UPDATE table1 a
SET a.location_id=b.location_id
FROM table b
inner JOIN a
ON a.enc_id=b.enc_id
WHERE a.enc_id='5EFE0E0B-447E-4D64-ADAB-001D084914A5'

注意:表一是要更新的表,表二是要连接的表。 谢谢你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多