带有 if 语句的存储过程不起作用
Stored procedure with if statement not working
我想创建一个存储过程来检查 purchase_info
table 中的产品是否有足够的数量。
这是我的代码。但它不起作用,结果没有显示 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)
我想创建一个存储过程来检查 purchase_info
table 中的产品是否有足够的数量。
这是我的代码。但它不起作用,结果没有显示 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)