You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储过程执行报错:多部分标识符'Order.Number_Order'无法绑定

解决存储过程中的多部分标识符绑定错误

你的问题很清晰——查询里引用了Order表的字段,但完全没把Order表加入到查询的表连接逻辑里,数据库自然找不到这些字段的绑定关系,才会抛出The multi-part identifier could not be bound错误。

错误根源拆解

你原存储过程的WHERE子句写了:

where [Order].Number_Order=od.ID_Order and [Order].[Location]='PRODUCTION'

但你的FROM/JOIN部分只涉及OdredDetails、ItemQuantity和item三个表,根本没引入Order表,SQL Server无法解析[Order].Number_Order这类标识符的归属。

修正后的存储过程

你需要把Order表通过JOIN关联进来,这里用INNER JOIN关联OdredDetails和Order表(通过ID_Order字段)即可,修正后的代码如下:

Create Proc Get_Order_Production AS
SELECT 
    i.Name_Item,
    od.ID_Order,
    od.Project,
    od.Length,
    od.Width,
    od.Quantity,
    od.Weight,
    od.Supplier,
    od.GDS_Name,
    od.GDS_Date,
    od.WorkshopName,
    od.WorkshopDate,
    od.ReservedQty
FROM OdredDetails od
INNER JOIN ItemQuantity iq ON iq.ID_ItemQte = od.ID_ItemQte
INNER JOIN item i ON i.ID_Item = iq.ID_Item
-- 新增JOIN逻辑,引入Order表并关联
INNER JOIN [Order] o ON o.Number_Order = od.ID_Order
WHERE o.[Location] = 'PRODUCTION'

额外优化说明

  • 给Order表加了别名o,既避免和SQL关键字ORDER冲突,也让代码更简洁易读;
  • 把原WHERE里的表关联条件移到JOIN子句中,这是更规范的写法,能让关联逻辑和过滤逻辑更清晰;
  • 注意到你写的OdredDetails可能是OrderDetails的拼写错误,如果是笔误建议同步修正,不过这不是当前报错的直接原因。

内容的提问来源于stack exchange,提问作者M.Bouabdallah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:58:30