用于从另一个数据库表更新一个数据库表的SQL Server存储过程

用于从另一个数据库表更新一个数据库表的SQL Server存储过程,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我正试图将Database2中保存的sopnumber输入Database1中的Invoice Number。没什么特别的,但我总是撞到墙。任何方向,即使它是一本书读将是伟大的 Update Database1 Set Database1.dbo.TableA.[Invoice Number] = Database2.dbo.TableA.SOPNUMBE Where Database1.dbo.TableA.[SO Number] = Database2.dbo.TableA.ORIGNUMB

我正试图将
Database2
中保存的
sopnumber
输入
Database1
中的
Invoice Number
。没什么特别的,但我总是撞到墙。任何方向,即使它是一本书读将是伟大的

Update Database1
Set Database1.dbo.TableA.[Invoice Number] = Database2.dbo.TableA.SOPNUMBE
Where Database1.dbo.TableA.[SO Number] = Database2.dbo.TableA.ORIGNUMB
获取此错误:

Msg 4104,16级,状态1,程序更新通知,第18行[批次] 开始第7行]
无法找到多部分标识符“Database2.dbo.TableA.ORIGNUMB” 束缚


试试这个-我重新创建了你的情况,这个查询对我有效

Update Database1.dbo.TableA
SET [Invoice Number] = b.SOPNUMBE
FROM Database1.dbo.TableA a
INNER JOIN Database2.dbo.TableA b ON a.[SO Number] = b.ORIGNUMB

有两件事——第一,FROM子句或JOIN子句中没有Database2.dbo.TableA——这就是它无法绑定的原因。第二,您的更新行“UPDATE Database1”没有限定要更新的表,但我认为这是一个输入错误。

您使用的是什么数据库软件?SQL Server、MySQL等。Microsoft SQL Server Management Studio这两个数据库都在同一台服务器上吗?是的,是同一台服务器从阅读有关该特定错误的信息来看,在调用Where子句中的最后一部分时,SQL Server似乎很难在两个数据库对象之间进行双缓存,也可以尝试使用数据库别名,您的开始Update语句应该是Update Database1.dbo.TableAThe更改允许代码无错误地执行我现在需要进一步研究它为什么不执行更新。