in updateステートメントなどのストアドプロシージャを作成していますが、そのようなタイプのものを適用する方法を混乱させていますか?
私のストアドプロシージャは次のとおりです。
ALTER PROCEDURE [dbo].[Payment_SP]
@reciptId varchar(50)=null,
@balPay float=null,
@payDone float=null,
@payDate datetime=null,
@fullfillId_FK varchar(50)=null,
@clintId_FK int=null,
@status varchar(50)=null,
@operation int,
@fullfillId varchar(50)=null
AS
BEGIN
if @operation = 3
BEGIN
UPDATE Recipt
SET balPay = @balPay
WHERE reciptId = @reciptId
if @@rowcount = 0
insert into Recipt(reciptId, balPay, payDone, payDate, fullfillId_FK, clintId_FK)
values(@reciptId, @balPay, @payDone, @payDate, @fullfillId_FK, @clintId_FK)
update Item_Full
set totCost = (select balPay from Recipt)
where fullfillId = @reciptId
if @balPay='0'
BEGIN
update Item_Order
set status = 'CLOSE'
where status = 'FULLFILL'
or status = 'RUNNING'
and orderId = @reciptId
END
ELSE
BEGIN
update Item_Order
set status = 'RUNING'
where status = 'FULLFILL'
and orderId = @reciptId
END
END
END
ここでは、たくさんのテーブルと列を使用しています。Recipt
しかし、バランス支払い(@balPay = 0)の場合、ステータス= CLOSEの場合、それ以外の場合はバランス> 0の場合、ステータス= RUNINGの場合、テーブルでそれをしたい
しかし、ステータスを取得するたびにRUNING
、支払いが完了した後になります。これは、if 部分ではなく、条件文の else 部分のみが実行されることを意味します。
if ステートメントの条件は何ですか
ありがとうございました