如何在SQL Server中添加具有自动增量值的字符串?

时间:2011-11-17 16:45:00

标签: sql-server tsql

如何在SQL Server中添加具有自动增量值的字符串?

create table date (sno int 'emp_'+ identity(1,1))

我需要关注输出

emp_1
emp_2

3 个答案:

答案 0 :(得分:8)

  1. 使用正常的INT IDENTITY
  2. 定义您的表格
  3. 添加一个计算列,将字符串和ID合并在一起:
  4. 这样的事情:

        CREATE TABLE dbo.YourTable
           (ID INT IDENTITY(1,1),
            EmpID AS 'emp_' + CAST(ID AS VARCHAR(10)) PERSISTED, 
            ......
           )
    

    这样,您的ID列是正常的IDENTITY列,EmpID将包含emp_1, emp_2, emp_3, ......, emp_42, ...

    通过将其设置为持久计算列,数据实际存储在磁盘上,无需在每次访问表时重新计算。此外,当持久化时,您也可以轻松地在该计算列上放置索引

答案 1 :(得分:1)

您不能将任何字符串用作自动增量

让我们认为你有一张桌子

|- id -|- name -|
|-  1 -|- Utku -|
|-  2 -|- Gopi -|

让我们选择它们为emp_1,emp_2

SELECT CONCAT("emp_",id) AS emp_id,name
FROM table

结果:

|- emp_id -|- name -|
|-  emp_1 -|- Utku -|
|-  emp_2 -|- Gopi -|

答案 2 :(得分:0)

尝试使用计算列MSDN

CREATE TABLE Yourtablename
(
    ID int IDENTITY (1,1) NOT NULL
    InvoiceID AS 'INV'+ right('000000' cast(ID as varchar(20),7)
);