Как получить следующий идентификатор автоинкремента в SQL - PullRequest
0 голосов
/ 29 сентября 2019

Я вставил автоинкрементный идентификатор в SQL Server с этим кодом:

[EmployeeID] AS ('EMP' + RIGHT('0000' + CONVERT([VARCHAR](5), [UserID]), (5))) + 1 PERSISTED,

И я хочу следующий EmployeeID, как если бы последняя вставленная запись была EMP0001, тогда я хочу показатьEMP0002 при использовании запроса выбора.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

сначала поместите столбец идентификатора в качестве столбца идентификаторов, после чего вставьте свои данные. нет необходимости указывать столбцы идентификаторов, это автоматически увеличивается. и поместите приращение идентификатора к вашему начальному номеру, и сколько это должно быть увеличено, дано в семени идентификации. проверьте столбцы идентичности в YouTube для лучшего понимания. тк

0 голосов
/ 29 сентября 2019

Вам необходимо сохранить max value идентификатора сотрудника в declared variable. От этого вы отделите EMP и Number. После этого вы можете увеличить числовое значение на 1 и использовать REPLICATE() для генерации, предшествующей 0.

. Пожалуйста, проверьте ответ ниже.

DECLARE @EMPID VARCHAR(10)

SELECT
@EMPID = MAX(X.EmployeeID)
FROM
(
SELECT 'EMP0008' EmployeeID UNION ALL
SELECT 'EMP0011'
) X

SELECT 'EMP' + REPLICATE('0',4 - LEN(RIGHT(@EMPID,4) + 1)) + CONVERT(VARCHAR(10),(RIGHT(@EMPID,4) + 1)) AS EmployeeID

Демо

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