Как загрузить sh буфер в хранимую процедуру ADS? - PullRequest
0 голосов
/ 31 января 2020

Я унаследовал хранимую процедуру, которая отлично работает, когда мы выполняем однопользовательский режим, но когда процедура выполняется более чем одним пользователем, все потери ада теряются. Я знаю, что это плохая структура, но, как я уже сказал, я унаследовал ее и должен жить с ней.

Есть ли какой-нибудь способ сделать flu sh буфер после заданной строки? Я просто хочу убедиться, что сгенерированный номер всегда уникален.

  begin transaction;
  try
    update s  
    set s.NEXT_YMMPC = s.NEXT_YMMPC + 1
    from system s;

    @YMMPC_Key = (select top 1 cast(s.NEXT_YMMPC as sql_char(10)) from system s);
    @YMMPC_Key = right('0000000'+trim(@YMMPC_Key),10);

    insert into YMMProductCatalog (Year,MakeCode,ModelCode,ProductCode,CatalogCode,YMMPC_Key) values (@Year,@MakeCode,@ModelCode,@ProductCode,@CatalogCode,@YMMPC_Key);

    commit work;

    insert into __output select @YMMPC_Key from system.iota;

  catch all
    rollback work;
    raise;  

  end;

TIA - Jay

...