Ema112 Ответов: 1

Как получить уникальный номер в SQL как в упомянутом формате?


Я хочу получить уникальный номер в sql.
Формат такой, как показано ниже:
DDMMYYXXXX
где DDMMYY (Текущая дата в формате DDMMYY) и
XXXX 4 значный повторяющийся номер

Что я уже пробовал:

выберите @проверить=заменить(преобразует(char(10), функции getdate() , 103), '/', ")

1 Ответов

Рейтинг:
1

Maciej Los

Проверить это: sql server - как автоинкрементировать varchar-переполнение стека[^]

[РЕДАКТИРОВАТЬ]
Определение таблицы должно выглядеть следующим образом (заменить YourTableName с именем, которое вы хотите использовать):

CREATE TABLE YourTableName
(
    ID INT IDENTITY(1,1),
    CurrDate DATE,
    CID INT,
    VCID VARCHAR(10)
)


Давайте вставим примеры данных:
--insert sample data
INSERT INTO YourTableName(CurrDate, CID, VCID)
VALUES('2016-08-23', 5, '2308160005'),
('2016-08-23', 6, '2308160006'),
('2016-08-23', 7, '2308160007')


Тогда вам придется создание хранимой процедуры[^]

CREATE STORED PROCEDURE cspInsertMyData
AS
BEGIN
    --declare variables
    DECLARE @d DATE = GETDATE()
    --max of CID
    DECLARE @nextcid INT = 0
    --initiate variable
    SELECT @nextcid = COALESCE(MAX(CID), 0) + 1 FROM YourTableName

    INSERT INTO YourTableName (CurrDate, CID, VCID)
    VALUES(@d, @nextcid, FORMAT(@d, 'ddMMyy') + RIGHT('0000' + CONVERT(VARCHAR(4), @nextcid), 4))

END;


Результат:
ID	CurrDate	CID	VCID
1	2016-08-23	5	2308160005
2	2016-08-23	6	2308160006
3	2016-08-23	7	2308160007
4	2016-08-23	8	2308160008



[/РЕДАКТИРОВАТЬ]