字符串值的自动递增

时间:2015-10-17 06:10:57

标签: sql

我需要查询字符串值中的自动增量 -

我需要XS000001,XS000009 .... XS000099 ... XS000999,XS009999,XS099999,XS999999

请帮帮我......

1 个答案:

答案 0 :(得分:1)

如果这是针对 SQL Server (您不清楚您使用的是哪个数据库),最佳解决方案是使用

  • ID INT IDENTITY(1,1)列,以使SQL Server处理数值的自动增量
  • 计算的,持久的列,将该数值转换为您需要的值

所以试试这个:

CREATE TABLE dbo.YourTable
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   AutoIncID AS 'XS' + RIGHT('000000' + CAST(ID AS VARCHAR(6)), 6) PERSISTED,
   .... your other columns here....
  )

现在,每次在YourTable中插入一行而未指定IDAutoIncID的值时:

INSERT INTO dbo.YourTable(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

然后SQL Server将自动且安全地增加ID值,而AutoIncID将包含XS000001XS000002等值。 ....等等 - 自动,安全,可靠,无重复。

但问题确实是:如果您的号码范围用完了怎么办?在分发XS999999之后你做了什么?我们无法为你回答.....