Хранимая процедура от Codeigniter - PullRequest
0 голосов
/ 07 мая 2018

Как предотвратить многократное выполнение хранимой процедуры для одного запроса?

$from_statecode = 'TN'; 
$this->db->query("Declare @CurrentInvoiceNo int 
                             Execute spSetInvoiceNoStatewise '$from_statecode', @CurrentInvoiceNo output
                             select @CurrentInvoiceNo");

Хранимая процедура: spSetInvoiceNoStatewise, имеет следующий вид: -

CREATE Procedure [dbo].[spSetInvoiceNoStatewise]
@StateCode nvarchar(20),
@InvoiceNo int = 0 output
AS
Begin
select @InvoiceNo=invoice_no from statewise_invoice_no where invoice_state_code=@StateCode

if(@InvoiceNo is not NULL) 
        UPDATE statewise_invoice_no set invoice_no = @InvoiceNo + 1 where invoice_state_code = @StateCode

if(@InvoiceNo is NULL) 
        insert into statewise_invoice_no (invoice_state_code,invoice_no) values (@StateCode, 1);

select @InvoiceNo=invoice_no from statewise_invoice_no where invoice_state_code=@StateCode

End

Что-то не так с хранимой процедурой? Или что можно сделать, чтобы предотвратить многократное выполнение для одного запроса?

Я просмотрел статьи, в которых предлагается " Блокировка ресурса или транзакций "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...