Я унаследовал хранимую процедуру, которая отлично работает, когда мы выполняем однопользовательский режим, но когда процедура выполняется более чем одним пользователем, все потери ада теряются. Я знаю, что это плохая структура, но, как я уже сказал, я унаследовал ее и должен жить с ней.
Есть ли какой-нибудь способ сделать 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