यदि SP1 के बाद SP2 की कॉल परमाणु हैं, तो उन्हें T-SQL में संयोजित किया जाना चाहिए। या c# लेन-देन खो दें। आप राउंडट्रिप के साथ अनावश्यक रूप से लेन-देन को लंबा कर रहे हैं।
साथ ही, SP1UPDLOCK पर UPDLOCK क्यों है लेकिन SP1 के लिए नहीं? मैं नहीं देख सकता क्यों। यदि समस्या लॉक संकेत है, तो उनका उपयोग न करें। अगर कुछ क्रमबद्ध है (क्यों?) तो फिर से, इसे एक एकल परमाणु कॉल करें
ध्यान दें कि डिफ़ॉल्ट वैसे भी पढ़ा जाता है
अंत में, क्या आपका मतलब "सेमाफोर" लॉक नहीं है? sp_getapplock का उपयोग करना डेटा पर ताले का उपयोग किए बिना कोड के माध्यम से प्रवाह को नियंत्रित करेगा