Лучшее решение - использовать
- столбец
ID INT IDENTITY(1,1)
, чтобы SQL Server обрабатывал автоматическое увеличение вашего числового значения
- a вычисляемый, сохраненный столбец для преобразования этого числового значения в нужное вам значение
Так попробуйте это:
CREATE TABLE dbo.Inventory
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
InventoryId AS 'ID-' + RIGHT('00000' + CAST(ID AS VARCHAR(5)), 5) PERSISTED,
.... your other columns here....
)
Теперь каждый раз, когда вы вставляете строку в dbo.Inventory
без указания значений для ID
или InventoryId
:
INSERT INTO dbo.Inventory (Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
, тогда SQL Server автоматически и безопасно увеличит ваше значение ID
, а InventoryId
будет содержать такие значения, как ID-00001
, ID-00002
, ...... и т. Д. - автоматически , безопасно, надежно, без дубликатов.