【问题标题】:What is the problem with the logic in my UPDATE statement?我的 UPDATE 语句中的逻辑有什么问题?
【发布时间】:2010-04-10 16:12:33
【问题描述】:

我将不胜感激有关 UPDATE 语句的帮助。

我想用来自tblCustomer 的内容更新tblOrderHead,其中intDocumentNo 对应于参数@intDocumentNo。但是当我运行 my 语句时,订单表只更新了客户表第一行的内容。

我的逻辑有什么问题?

我使用 Microsoft SQL Server。

谢谢,

斯蒂芬

UPDATE      dbo.tblOrderHead
SET         dbo.tblOrderHead.intCustomerNo   = @intCustomerNo ,
            dbo.tblOrderHead.intPaymentCode  = dbo.tblCustomer.intPaymentCode,
            dbo.tblOrderHead.txtDeliveryCode = dbo.tblCustomer.txtDeliveryCode,
            dbo.tblOrderHead.txtRegionCode   = dbo.tblCustomer.txtRegionCode,
            dbo.tblOrderHead.txtCurrencyCode = dbo.tblCustomer.txtCurrencyCode,
            dbo.tblOrderHead.txtLanguageCode = dbo.tblCustomer.txtLanguageCode
FROM        dbo.tblOrderHead
INNER JOIN  dbo.tblCustomer ON dbo.tblOrderHead.intOrderNo = @intDocumentNo

解决方案

如果有人像我一样愚蠢,那么你就是这样解决它的:

UPDATE      dbo.tblOrderHead
SET         dbo.tblOrderHead.intCustomerNo   = @intCustomerNo ,
            dbo.tblOrderHead.intPaymentCode  = dbo.tblCustomer.intPaymentCode,
            dbo.tblOrderHead.txtDeliveryCode = dbo.tblCustomer.txtDeliveryCode,
            dbo.tblOrderHead.txtRegionCode   = dbo.tblCustomer.txtRegionCode,
            dbo.tblOrderHead.txtCurrencyCode = dbo.tblCustomer.txtCurrencyCode,
            dbo.tblOrderHead.txtLanguageCode = dbo.tblCustomer.txtLanguageCode
FROM        dbo.tblOrderHead
INNER JOIN  dbo.tblCustomer ON dbo.tblOrderHead.intCustomerNo = dbo.tblCustomer.intCustomerNo
AND         dbo.tblOrderHead.intOrderNo = @intDocumentNo

【问题讨论】:

  • 这个“dbo.tblOrderHead.intCustomerNo = @intCustomerNo”不会让它只为一个客户更新吗?

标签: sql-server inner-join


【解决方案1】:

问题是,您没有指定tblOrderHeadtblCustomer 2 个表需要连接的条件!

你需要类似的东西

INNER JOIN  dbo.tblCustomer 
ON dbo.tblOrderHead.someColumn = dbo.tblCustomer.someColumn
and dbo.tblOrderHead.intOrderNo = @intDocumentNo

【讨论】:

  • 谢谢,显然逻辑问题从来不在我的陈述中,而是在我的大脑中。和以前一样...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-26
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多