Мне нужно поместить числа в последовательном порядке (1, 2, 3, 4 ...) в столбец таблицы. Это номера счетов, они должны быть целями, без пробелов, не повторяться. Является обязательным требованием, фактически является налоговым требованием, поэтому я не могу его пропустить.Последовательные номера - SQL Server 2008 R2
Мой текущий является Подход использовать второй «Числа» таблицу с 2 столбцами (Id, LastNumber) с одной записью на нем, Id = 1. Это то, что я делаю сейчас: 1. Выберите (LastNumber + 1) в виде числа из числа с (xlock, rowlock), где Id = 1 2. присвойте номер, сделайте другие вставки и обновления для других таблиц. 3. UPDATE Numbers установить LastNumber = @Number где Id = 1 - @ номер является номером извлекаться в шаге 1 4. Окончание сделки
Я пытаюсь использовать замок, и делать, если я не знаю, Правильно ли, что является наиболее эффективным решением для этого? Как я уже говорил выше, является обязательным требованием, номер должен быть постоянным, без пробелов, не повторяться. Таблица используется в приложении от нескольких клиентов в сети. Я использую Sql Server 2008 R2.
я нашел подобный вопрос: Sequential Invoice Numbers SQL server
решение дается там с некоторыми T-SQL кода, получить максимальное количество в таблице, но то, что произойдет, если 2 клиента называется этот код в то же время ? Будет произведено 2 повторных номера?
Thanks
http://stackoverflow.com/questions/751270/best-way-to-get-the-next-id-number-without-identity это может помочь – Devesh