首页 > 解决方案 > 更新 2 个表以将它们与存储过程连接起来

问题描述

我正在尝试更新这 2 个表:

  1. tblProducts: PID, PName, PPrice, PSelPrice, PCategoryID, PDescription, image, 特色
  2. tblCategories:猫ID,猫名

但它无法保存它。所以有错误...

CREATE PROCEDURE [dbo].[procUpdateProducts]
    @PID int,
    @PName nvarchar(50),
    @PPrice money,
    @PSelPrice money,
    @PCategoryID int,
    @PDescription nvarchar(MAX),
    @image nvarchar(MAX),
    @featured nvarchar(10)
AS   
BEGIN    
    UPDATE tblProducts
    SET PID = @PID, 
        PName = @PName, 
        PPrice = @PPrice, 
        PSelPrice = @PSelPrice, 
        PCategoryID = @PCategoryID,
        PDescription = @PDescription, 
        [image] = @image, 
        featured = @featured
    FROM tblProducts AS p 
    INNER JOIN tblCategories AS c ON p.PCategoryID = c.CatID
    WHERE PID = @PID
END

标签: sql-serverstored-proceduressql-updateinner-join

解决方案


希望以下查询能够正常工作!

CREATE PROCEDURE [dbo].[procUpdateProducts]
@PID int,
@PName nvarchar(50),
@PPrice money,
@PSelPrice money,
@PCategoryID int,
@PDescription nvarchar(MAX),
@image nvarchar(MAX),
@featured nvarchar(10)
AS   
BEGIN    
    UPDATE p
    SET p.PID = @PID, 
        p.PName = @PName, 
        p.PPrice = @PPrice, 
        p.PSelPrice = @PSelPrice, 
        p.PCategoryID = @PCategoryID,
        p.PDescription = @PDescription, 
        p.[image] = @image, 
        p.featured = @featured
    FROM tblProducts AS p 
    INNER JOIN tblCategories AS c ON p.PCategoryID = c.CatID
    WHERE p.PID = @PID
END

推荐阅读