【问题标题】:Auto Increment in String Value字符串值自动递增
【发布时间】:2015-10-17 06:10:57
【问题描述】:

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

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

请帮帮我...

【问题讨论】:

  • 进一步,我在 windows 平台上工作,使用 windows 窗体应用程序,当我点击它必须在这些范围之间自动创建 id 时,我有一个 Addnew Insured 按钮。谢谢...
  • 如果您使用的是 Windows 应用程序,为什么要在查询中处理。存储最新值(例如 XS000010)然后“将 1 添加到 000010”并与“XS”连接

标签: sql


【解决方案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之后你会做什么?我们无法为您回答这个问题.....

【讨论】:

  • @RavindraBisht:如果这个答案帮助你解决了你的问题,那么请accept this answer。这将表达您对花费自己的时间帮助您的人们的感激之情。
猜你喜欢
  • 2013-04-11
  • 2013-01-04
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 2013-11-20
相关资源
最近更新 更多