Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Автоматическое формирование номера  [new]
igor888
Guest
Доброе утро.

Имеется таблица с полем штрих-кода (nvarchar(64)). Иногда оно заполняется через сканер, иногда заполняется вручную. Теперь нужно решить задачу вместо ручного ввода формирования автоматический номер след. формата: "00001", "00002", "00003" и т.д.

Посоветуйте, как с помощью запроса можно вытянуть (сформировать) следующий порядковый номер?
2 фев 16, 08:46    [18759643]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
Glory
Member

Откуда:
Сообщений: 104760
https://msdn.microsoft.com/en-us/library/ff878091.aspx
https://msdn.microsoft.com/en-us/library/ms186775.aspx
2 фев 16, 09:22    [18759763]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
igor888
Guest
Glory,

Спасибо за ссылки.
Почитал, что в первом случае, что во втором, не могу понять с какой стороны подойти...
Дело в том что поле штрих-кода имеет тип NVARCHAR(64), и номер нужно получить до момента внесения записи в бд.

Как хотелось бы: По умолчанию клиентская часть, до момента сохранения записи, получает (запросом, из хранимки, неважно как...) сгенерированный уникальный номер, далее который, может быть изменён, руками или сканером. Таким образом в базе храниться что-то подобное:

Barcode
FG88963524-GH
FG88105524-HJ
00001
FG33105524-HJ
FG99105524-HJ
00002
FG88963524-GH
00003


"00001", "00002", "00003" - Пользователь вносит руками, определяя номер самостоятельно. Сейчас ищет последний номер по справочнику долее +1.. сохраняет и т.д.

Получается нужно определить, какой последний номер по данному номерному шаблону.
2 фев 16, 15:35    [18762574]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor888
"00001", "00002", "00003" - Пользователь вносит руками, определяя номер самостоятельно.

Вы уж определитесь - толи у вас номер вносит пользователь, толи его генерирует сервер
2 фев 16, 15:38    [18762604]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
ТС, ищите по фразе sequence

https://msdn.microsoft.com/ru-ru/library/ff878370(v=sql.120).aspx
2 фев 16, 15:41    [18762631]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
igor888
"00001", "00002", "00003" - Пользователь вносит руками, определяя номер самостоятельно. Сейчас ищет последний номер по справочнику долее +1.. сохраняет и т.д.
Что будете делать, когда пользователей станет двое, трое и т.д.?
2 фев 16, 15:47    [18762677]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
igor888
Guest
invm
igor888
"00001", "00002", "00003" - Пользователь вносит руками, определяя номер самостоятельно. Сейчас ищет последний номер по справочнику долее +1.. сохраняет и т.д.
Что будете делать, когда пользователей станет двое, трое и т.д.?


Доброе утро,
да, пользователь не один,
поле штрих-кода UNIQUE + имеется перед сохранением проверочная процедура на имеющейся штрих-код в БД.
3 фев 16, 06:58    [18765146]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
igor888
Guest
Konst_One
ТС, ищите по фразе sequence

https://msdn.microsoft.com/ru-ru/library/ff878370(v=sql.120).aspx


Тут проблема... MSSQL2008R2
3 фев 16, 07:07    [18765150]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
igor888
Guest
Если упростить задачу,
как определить, какой должен быть следующий номер по автоинкрементному полю?
3 фев 16, 07:19    [18765162]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor888
Если упростить задачу,
как определить, какой должен быть следующий номер по автоинкрементному полю?

Такая задача - бредовая
Вам не нежно знать следующий номер
Вам нужно получить номер, который сервер сгенерировал _после_ добавления записи(ей).
3 фев 16, 09:19    [18765353]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
igor888
Guest
Glory,

есть способ определить какой будет номер автоинкрементного поля после вставки записи? или таких способов нет?

можно, конечно, сделать MAX([Field]) + 1, но вдруг одну или несколько последних записей удалили, то результат будет неверным((
3 фев 16, 12:47    [18766599]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое формирование номера  [new]
Glory
Member

Откуда:
Сообщений: 104760
igor888
есть способ определить какой будет номер автоинкрементного поля после вставки записи? или таких способов нет?

Такое впечатление, что вы ссылки не открывали
3 фев 16, 12:49    [18766613]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить