Как из значения ID (автоинкремент) получить значения вида 0001, 0002, 0003?

Имеется таблица, условно, такого вида:

CREATE TABLE [dbo].[Actavia] (
    [Id]          BIGINT           IDENTITY (1, 1) NOT NULL,
    [DocIndex]          NVARCHAR (50) NULL,
);

SQL по умолчанию в столбец Id при создании записей проставляет значения вида 1, 2, 3, 4 и т.д. Как можно получить значения вида 0001, 0002, 0003, 0004 для формирования записи в столбце [DocIndex] ???


Ответы (2 шт):

Автор решения: IgorSl
declare @x int
select @x=1
select @x,format(@x,'0000')
→ Ссылка
Автор решения: Olga Romantsova

Попробуйте так:

   .....
   UPDATE Actavia
   SET [DocIndex]=RIGHT(CONCAT('000',cast (i.Id AS NVARCHAR(MAX))),4) --в этой строке берем данные которые вы вносите (i.Id, то есть из inserted)
   FROM Actavia X
   JOIN inserted i ON X.id = i.id  

то есть в любом случае Вы можете использовать следующий код для получения значений вида 000N, где N- ваш Id:

 [DocIndex]=RIGHT(CONCAT('000',cast (Id AS NVARCHAR(MAX))),4)
→ Ссылка