How do I add string with auto increment value in SQL Server?
Solution 1:
- Define your table with a normal
INT IDENTITY
column - Add a computed column that merges string and
ID
together:
Something like this:
CREATE TABLE dbo.YourTable
(ID INT IDENTITY(1,1),
EmpID AS 'emp_' + CAST(ID AS VARCHAR(10)) PERSISTED,
......
)
This way, your ID
column is a normal IDENTITY column, and EmpID
will contain emp_1, emp_2, emp_3, ......, emp_42, ...
By making it a persisted computed column, the data is actually stored on disk and doesn't need to be re-calculated every time you access the table. Also, when persisted, you can easily put an index on that computed column, too
Solution 2:
You can't use any string as autoincrement
Lets think you have a table
|- id -|- name -|
|- 1 -|- Utku -|
|- 2 -|- Gopi -|
Lets select them as emp_1,emp_2
SELECT CONCAT("emp_",id) AS emp_id,name
FROM table
Result:
|- emp_id -|- name -|
|- emp_1 -|- Utku -|
|- emp_2 -|- Gopi -|