关于 自增问题 想到头爆了 !!!

aierduo 2006-11-23 04:36:00
在表A中
我的 编号规则如下
aaa%dbbb
----------
添加记录时
如果该表为空的则添加
aaa0001bbb
如果表里有记录,假如为
aaa001bbb
aaa002bbb
那么添加的记录应该是
aaa003bbb



请问怎么实现呢
...全文
241 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oooooo126 2006-11-23
  • 打赏
  • 举报
回复
declare @t int,@sql nvarchar
select @t=max(cast(substring(编号,4,len(编号)-6) as int))+1 from 表
set @sql=cast(@t as nvarchar)
while len(@sql)<len(编号)-6
begin
set @sql=''
@sql='0'+@sql
end
set @sql='aaa'+@sql+'bbb'
insert into 表(编号) values(@sql)
oooooo126 2006-11-23
  • 打赏
  • 举报
回复
declare @t int,@sql nvarchar
select @t=cast(substring(编号,4,len(编号)-6) as int)+1 from 表
@sql='aaa'+cast(@t as nvarhchar)+'bbb'
insert into 表(编号) values(@sql)

为空时字节把编号字段设置成非空,把默认值设置成aaa001bbb
playwarcraft 2006-11-23
  • 打赏
  • 举报
回复
建個標示欄位
alter table A add [id] int identity

T上建個促發器
create trigger t1 on A
for insert
as
update T set 编号=stuff(编号,4,3,right(1000+[id],3))
aierduo 2006-11-23
  • 打赏
  • 举报
回复
谢谢各位 我试一试
dawugui 2006-11-23
  • 打赏
  • 举报
回复
--如果记录为空
select 'aaa' + right('000' + cast(1 as varchar) , 3) + 'bbb'
--如果记录不为空
select 'aaa' + right('000' + cast(cast(substring(max(编号规则),4,3) as int) + 1 as varchar) , 3) + 'bbb'
CSDMN 2006-11-23
  • 打赏
  • 举报
回复
建立函数

create function fn_NextNo
returns varchar(20)
as
begin
declare @r int
select @r=isnull(max(cast(substring(编号,4,3) as int))+1,1) from a where 编号 like 'aaa%bbb'
return 'aaa'+right('000'+cast(@r as varchar),3)+'bbb'
end
go

--插入语句
insert into a(编号) select dbo.fn_NextNo()

aierduo 2006-11-23
  • 打赏
  • 举报
回复
写错了 空的时候 添加是
aaa001bbb
上面多了个0
内容概要:本文系统阐述了正规表达式(正则表达式)作为词法分析核心工具的理论基础与实际应用。文章从字母表、符号串等基本概念出发,详细介绍了正规式的定义、运算规则、代数性质及其与有限自动机(NFA/DFA)的等价关系,阐明了通过Thompson构造法、子集构造法和DFA最小化实现词法分析器自动生成的技术路径。同时,文中列举了标识符、关键字、运算符等编程语言元素的正规式描述,并说明了最长匹配和优先级规则在歧义消解中的作用。此外,还对比了正规式与上下文无关文法的表达能力差异,指出了其在嵌套结构和计数能力上的局限性,并介绍了Lex/Flex等词法分析器生成工具的应用场景。; 适合人群:计算机相关专业学生、编译原理初学者、希望深入理解词法分析机制的研发人员;具备一定的离散数学和形式语言基础者更佳。; 使用场景及目标:① 学习如何使用正规表达式精确描述程序语言的词法规则;② 掌握从正规式到DFA的转换流程及其实现原理,为构建编译器前端打下基础;③ 理解词法分析器生成工具的工作机制,提升对自动化工具的理解与运用能力。; 阅读建议:建议结合编译器设计实践进行学习,尝试手动完成正规式到NFA再到DFA的转换练习,并使用Flex等工具验证结果,以加深对理论知识的理解与应用。

22,296

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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