繁体   English   中英

带有 if 语句的存储过程不起作用

[英]Stored procedure with if statement not working

我想创建一个存储过程来检查产品在purchase_info表中是否有足够的数量。

这是我的代码。 但它不起作用,结果没有显示 if...else 查询。

任何人都可以帮我解决它吗? 谢谢你。

CREATE PROCEDURE dbo.usp_CheckProductStock
    (@product_id varchar(50),
     @color varchar(80),
     @quantity int)
AS
BEGIN;
    IF @quantity <= (SELECT purchase_quantity 
                     FROM purchase_info  
                     WHERE product_id = @product_id AND color = @color) 
    BEGIN
        PRINT 'There is enough stock'
    END
    ELSE
    BEGIN
        SELECT product_id, color, purchase_quantity 
        FROM purchase_info 
        WHERE product_id = @product_id AND color = @color;
    END
END;


EXEC dbo.usp_CheckProductStock @product_id='LF10001', @color='APR', @quantity=15

@quantity参数的奇异值与SELECT语句中的多行之间存在冲突。 所以它阻止了它们之间的比较。

请尝试更改if子句逻辑如下:

IF EXISTS (SELECT purchase_quantity 
        from purchase_info  
        WHERE product_id = @product_id and color = @color
            AND purchase_quantity <= @quantity) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM