Генерация автопоследовательности на сервере SQL как AB001 ... AB999 - PullRequest
0 голосов
/ 15 марта 2019

Я хочу сгенерировать последовательность SQL для таблицы (имя таблицы - Сотрудник).

столбец (Emp_Title) как

AB001 ..... AB999, как только значение достигнет AB999

он должен автоматически начинаться с AC001 ... AC999 и отсюда снова начинаться с AD001 ...... AD999 . Процесс пойдет до ZZ001 ...... ZZ999 .

Эту последовательность я буду использовать для вставки новой записи сотрудника в мою таблицу сотрудников.

Пример As -

INSERT INTO Employee VALUES (NEXT VALUE FOR [dbo].[SequenceCounter], 'EmpName', 'EmpDesignation', 'EmpSalary')

1 Ответ

1 голос
/ 16 марта 2019

Вы можете разместить столбец Identity в этой таблице, а затем вычисляемый столбец, чтобы преобразовать значение идентификатора в нужный вам формат. Должно работать что-то вроде следующего:

CREATE TABLE [dbo].[Employee](
   [ID] [int] IDENTITY(1,1) NOT NULL,
   [EmpName] [varchar](50) NOT NULL,
   [EmpDesignation] [varchar](50) NOT NULL,
   [EmpSalary] [Money] NOT NULL,
   [Emp_Title]  AS ((CHAR((65)+([ID]/(1000))/(26))+CHAR((65)+([ID]/(1000))%(26)))+FORMAT((([ID]-1)%(1000)+1),'000'))       
) ON [PRIMARY]

Или вы можете создать представление, которое будет манипулировать вашим полем ID для отображения только в том формате, который вы ищете.

В любом случае вам нужно наложить ограничение на идентификатор, чтобы сохранить его в максимальном значении, которое будет генерировать идентификатор ZZ999, если мои вычисления правильны, то будет 675999.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...