27,579
社区成员
发帖
与我相关
我的任务
分享
create table a(id int identity primary key,dt datetime default getdate(),sn varchar(20))
insert into a(dt,sn) values(getdate(),getSN()) --因为是插入的第一条数据,sn的值是201802261
insert into a(dt,sn) values(getdate(),getSN()) --因为是插入的第二条数据,sn的值是201802262
insert into a(dt,sn) values(getdate(),getSN()) --因为是插入的第三条数据,sn的值是201802263
insert into a(dt,sn) values(getdate(),getSN()) --因为是插入的第三条数据,sn的值是201802264
delete from a where sn='201802263'
delete from a where sn='201802262' -- 删除部分数据,但不影响sn生成,即使用最后一条sn作为计算依据,如果删除的条目为最后一条,则该sn可再次利用,否则跳过
insert into a(dt,sn) select dt,getSN() from a -- 因为表a中有两条数据,且最后一条sn为201802264,所以getSN()生成两个sn,匹配这两条数据,分别是201802265和201802266
insert into a(dt,sn) select dt,getSN() from a -- 因为表a中有4条数据,且最后一条sn为201802266,所以getSN()生成两个sn,匹配这两条数据,分别是201802267、201802268、201802269和2018022610