具有两个输入参数的Sql过程
我需要创建一个SQL存储过程,该过程将采用两个输入参数(表'users'的id和表'sales'的id),然后如果列'Couples'(表'users')的值大于0,它将增加列'numOfSales'(表'sales')中1的值,并减少列'Couples'中1的值。 我试过这个:具有两个输入参数的Sql过程,sql,sql-server,Sql,Sql Server,我需要创建一个SQL存储过程,该过程将采用两个输入参数(表'users'的id和表'sales'的id),然后如果列'Couples'(表'users')的值大于0,它将增加列'numOfSales'(表'sales')中1的值,并减少列'Couples'中1的值。 我试过这个: CREATE PROCEDURE usp_makesale @id_sales int NOT NULL, @id_users int NOT NULL AS BEGIN SET NOCOUNT ON; SELE
CREATE PROCEDURE usp_makesale
@id_sales int NOT NULL,
@id_users int NOT NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT users.coupons, sales.numOfSales
IF (coupons > 0)
BEGIN
SET coupons - 1;
SET numOfSales + 1;
END
如何正确声明这些变量?您应该这样声明变量:
DECLARE @coupons AS INT
SELECT @coupons = coupons FROM users WHERE users.id = @id_users
DECLARE @numOfSales AS INT
SELECT @numOfSales = numOfSales FROM sales WHERE sales.id = @id_sales
但是,您还没有正确编写update语句来更新列中的值。您需要类似以下内容:
UPDATE users
SET coupons = coupons - 1
WHERE users.id = @id_users
UPDATE sales
SET numOfSales = numOfSales + 1
WHERE sales .id = @id_sales
去掉参数声明中的“NOT NULL”部分。答案有帮助吗?当我试图解析它时,给出错误“关键字“SELECT”附近的语法不正确”。SELECT在“=”之后。我已从变量设置中删除了不正确的语法,请查看我编辑的答案。要从表中设置变量,正确的语法是
SELECT@[variablename]=[field]from[table]