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
[/РЕДАКТИРОВАТЬ]