且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何为此编写查询

更新时间: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