আমার সঞ্চিত পদ্ধতিতে আমার সন্নিবেশগুলির সাথে একযোগে সমস্যা হচ্ছে। পদ্ধতির প্রাসঙ্গিক অংশটি হ'ল:
select @_id = Id from table1 where othervalue = @_othervalue
IF( @_id IS NULL)
BEGIN
insert into table1 (othervalue) values (@_othervalue)
select @_id = Id from table1 where othervalue = @_othervalue
END
যখন আমরা এই সঞ্চিত প্রকল্পের একযোগে 3 বা 4 চালাই আমরা উপলক্ষ্যে একাধিক সন্নিবেশ পাই।
আমি এইভাবে ঠিক করার পরিকল্পনা করছি:
insert into table1 (othervalue)
select TOP(1) @_othervalue as othervalue from table1 WITH(UPDLOCK)
where NOT EXISTS ( select * from table1 where othervalue = @_othervalue )
select @_id = Id from table1 where othervalue = @_othervalue
প্রশ্নটি হল, এসকিএল সার্ভারে ডুপ্লিকেট ছাড়াই একসাথে কীভাবে সন্নিবেশ করা যায়? আমাকে কেবল একবার ব্যাঘাত ঘটাতে শীর্ষস্থান ব্যবহার করতে হবে তা এই সত্য।