Моя основная процедура - spPet_TransferPettyCashToGL.Из этой процедуры я вызываю (fnApp_GetCurrentBatchNo) функцию и получаю мой номер партии и использую его в процедуре для процесса.Перед выходом из процедуры я обновляю свою партию №.
Я хочу заблокировать свою таблицу batch no
, а после обновления партии нет. Я хочу освободить эту таблицу.
Main SP:
ALTER PROCEDURE [dbo].[spPet_TransferPettyCashToGL]
@ComCod as varchar(2),
@LocCod as varchar(2),
@PetDat as varchar(8)
AS
BEGIN
/* Get New Batch No From Function */
DECLARE @CurrentBatchNo as int
EXECUTE @CurrentBatchNo = Accounts.dbo.fnApp_GetCurrentBatchNo @ComCode = @ComCod,
@LocCode = @LocCod
/* Due to large code I ignored unnecessary areas. */
/* UPDATE Provisional_Posting_Log {Last Update Batch NO} */
EXECUTE spApp_UpdateProvisionalPostingLogBatchNo @ComCod,
@LocCod,
@CurrentBatchNo
END
Функция, которая дает Batch No
:
ALTER FUNCTION [dbo].[fnApp_GetCurrentBatchNo]
(
@ComCode varchar(2),
@LocCode varchar(2)
)
RETURNS int
AS
BEGIN
DECLARE @CurrentBatchNo int
SELECT @CurrentBatchNo = (SELECT (Last_Updated_Batch_No + 1)
FROM Provisional_Posting_Log
WHERE Company_Code = @ComCode AND
Location_Code = @LocCode)
RETURN @CurrentBatchNo
END
SP, который обновляет batch no
до полученного значения из FN выше:
ALTER PROCEDURE [dbo].[spApp_UpdateProvisionalPostingLogBatchNo]
@ComCod as varchar(2),
@LocCod as varchar(2),
@CurrentBatchNo as int
AS
BEGIN
UPDATE Provisional_Posting_Log
SET Last_Updated_Batch_No = CAST(@CurrentBatchNo as decimal(24,0))
WHERE Company_Code = @ComCod AND
Location_Code = @LocCod
END
Как я могу заблокироватьProvisional_Posting_Log
таблица, когда я получаю номер партии, и как я могу выпустить его после обновления номер партии?