क्या यह जरूरी है कि लॉट नंबर क्रमिक हों? क्यों न केवल एक identity
का उपयोग करें ? यह समवर्ती के संदर्भ में बेहतर है क्योंकि अन्यथा आपको समवर्ती सम्मिलन प्रयासों को अवरुद्ध करने की आवश्यकता होती है यदि वे वापस लुढ़क जाते हैं और अनुक्रम में एक अंतर छोड़ देते हैं।
अगर यह पूरी तरह से एक आवश्यकता है, तो आप कर सकते हैं
CREATE TABLE dbo.Sequence
(
OneRow CHAR(1) DEFAULT('X') PRIMARY KEY CHECK(OneRow = 'X'),
val INT
)
प्रारंभिक बीज के साथ एक पंक्ति डालें।
INSERT INTO dbo.Sequence
(val)
VALUES (1)
फिर अपने डालने के लिए पर्याप्त आकार की एक श्रृंखला आवंटित करने के लिए (इसे स्पष्ट रूप से उसी लेनदेन में कॉल करें)
CREATE PROC dbo.GetSequence
@val AS int OUTPUT,
@n as int =1
AS
UPDATE dbo.Sequence
SET @val = val = (val + @n);