如何写这个sql语句,初学者提

xaojancsdn 2003-02-24 02:11:39
有一个char(7)的字段,作为编号用,如0000001,0000002,000010.....
现在要每增一条记录让编号增加1,如何做最简单,我不想在程序中做
...全文
37 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LHB2K 2003-02-24
  • 打赏
  • 举报
回复
如果你不想在程序中做的话可以用触发器来实现。注意你的fieldname如果是主键或在其上有唯一索引的话,你一次只能插入一行,要有默认值,否则当你在程序中插入的时候一定会出错!如果不是主键的话就好处理一些。但此列要么允许为空要么有默认值,可以批量插入多行

create trigger trigger_name on table_name for insert as
declare @maxid char(7)

select @maxid=fieldname from table_name,inserted
where table_name.fieldname<>inserted.fieldname

update table_name set @maxid=fieldname=right('000000'+rtrim(cast(@maxid as int)+1),7)
from inserted
where
inserted.fieldname=table_name.fieldname
愉快的登山者 2003-02-24
  • 打赏
  • 举报
回复
declare @a char(7)
set @a = '0000001'
select right(cast(10000000 + cast(@a as int) + 1 as char(8)),7)
xaojancsdn 2003-02-24
  • 打赏
  • 举报
回复
如何在前面补零。
j9988 2003-02-24
  • 打赏
  • 举报
回复
update table set fieldname=right('000000'+rtrim(cast(fieldname as int)+1),7)

34,589

社区成员

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

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