更新时间:2023-02-03 17:33:01
您无法在一条语句中更新两个表或两个不同的行-您需要执行两个UPDATE语句,***作为TRANSACTION的一部分.
我会创建一个存储过程来在事务中同时完成这两个任务:
You can''t update two tables or two different rows in one statement - you need to do two UPDATE statements, preferably as part of a TRANSACTION.
Personnaly, I would create a Stored Procedure to do them both within a transaction:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE MoveGoods
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
UPDATE prod_inventory SET qty = qty-5 WHERE prodId = 1 AND WarehouseId=1
UPDATE prod_inventory SET qty = qty+5 WHERE prodId = 1 AND WarehouseId=2
COMMIT
END
GO
您可以在其中使用if else语句
Hi ,
you can use if else statements in it
IF (SELECT QTY FROM PROD_INVENTORY WHERE PROD_GRP_ID=@PGID and PRODUCT_ID=@PID AND WAREHOUSE_ID=@FWRID) <
15 开始 //进行您的交易 END ELSE @ msg = ' 没有足够的商品';
15 BEGIN //Do your transaction END ELSE @msg='No Sufficient Goods';
这里@msg是out参数
我希望您知道sqlserver中的参数
Here @msg is out parameter
I hope you know out parameters in sqlserver