SQL实现非数字类自动增加问题

aqiang1979 2007-01-16 12:42:08
如:字段编码 001.001.001
001.001.002
如何插入一条记录编码自动递增
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppact 2007-01-16
  • 打赏
  • 举报
回复
另设一张表,作为计数器使用。
比如,计数器初始为0,插入一条记录前,先取得计数值。
eg。第一条,取得计数为0,然后+1,得到新值 1 为001,同时计数器+1
同理 第2条,取得计数为1,然后+1,得到新值 2 为002,同时计数器+1
zhengqinxu 2007-01-16
  • 打赏
  • 举报
回复
参考:
select left(max('001.001.001'),8)+Right('000'+Cast(right(max('001.001.001'),3)+1 as varchar(3)),3)
中国风 2007-01-16
  • 打赏
  • 举报
回复
用触发器和函数都可以实现这里有个列子:
http://blog.csdn.net/roy_88/archive/2006/12/01/1424370.aspx
marco08 2007-01-16
  • 打赏
  • 举报
回复

declare @str varchar(20)
set @str='001.001.999'

select @str=right('000'+rtrim(replace(@str, '.', '')+1), 9)
select stuff(stuff(@str, 4, 0, '.'), 8, 0, '.')

--result

----------------------
001.002.000

(1 row(s) affected)
marco08 2007-01-16
  • 打赏
  • 举报
回复
declare @str varchar(20)
set @str='001.001.001'

select @str=right('000'+rtrim(replace(@str, '.', '')+1), 9)
select stuff(stuff(@str, 4, 0, '.'), 8, 0, '.')

--result

----------------------
001.001.002

(1 row(s) affected)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧