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

标签 sql sql-server stored-procedures

我正在尝试将 Database2 中保存的 SOPNUMBE 输入到 Database1 中的发票编号。没什么特别的,但我总是碰壁。任何方向,即使是一本书阅读也会很棒。

Update Database1
Set Database1.dbo.TableA.[Invoice Number] = Database2.dbo.TableA.SOPNUMBE
Where Database1.dbo.TableA.[SO Number] = Database2.dbo.TableA.ORIGNUMB

收到此错误:

Msg 4104, Level 16, State 1, Procedure UpdateInvoice, Line 18 [Batch Start Line 7]
The multi-part identifier "Database2.dbo.TableA.ORIGNUMB" could not be bound.

最佳答案

试试这个 - 我重新创建了您的情况,这个查询对我有用。

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 - 这就是它无法绑定(bind)的原因。其次,您的 UPDATE 行 - “Update Database1”不符合要更新的表,但我认为这是一个拼写错误。

关于SQL Server 存储过程从另一个数据库表更新一个数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49986118/

相关文章:

sql - 如何从查询中返回 SQL 数据类型?

sql - 如何查询 JSONB 字段字典中的值数组?

sql - 索引和插入操作

mysql - 使用 VARCHAR 与 TEXT 在 MySQL 中存储小型 XML 文档的优缺点是什么?

c# - 在客户端和服务器之间保护用户名/密码的最佳实践

asp.net-mvc - SqlParameter 与 ObjectParameter

sql-server - SQL Server 2005 : Subquery in EXEC?

sql - 选择与另一个日期最接近的日期

MySql 5.6 到 MSSql 服务器 2014 迁移 : ExecuteReader requires an open and available Connection

mysql - 是否可以通过存储过程更改 mySql 中的表?