SqlServer中的自增的ID的最后的值:
创新互联建站2013年至今,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元新宁做网站,已为上家服务,为新宁各地企业和个人服务,联系电话:028-86922220
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。
SELECT @@IDENTITY --返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和会话的限制,而受限于指定的表。
IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
对于马上使用的刚才插入的新记录ID用SCOPE_IDENTITY()是最合适的;
对于想要得到一系列的操作中最后得到的那个自增的ID最好用@@IDENTITY;
对于想要得到一个表中的最后一个插入操作所产生的ID的最好用IDENT_CURRENT('TBName')
DECLARE @TMP_ID INT
SET @TMP_ID = IDENT_CURRENT('BID_EvaluateItem')
IF ((@TMP_ID IS NOT NULL) AND (@TMP_ID 0))
BEGIN
--其它的操作
END
SQL Server
1.通过 IDENTITY 来设置
参数有2个,一个是“初始值” 一个是“增量”。
默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。
1 CREATE TABLE test_create_tab2 (
2 id INT IDENTITY(20120909001, 1) PRIMARY KEY,
3 val VARCHAR(10)
4 );
5 go
2.直接在数据中建表的时候操作也是也可以的
不过,对于你要使用的这个自增,个人建议你还是在程序中写一个自动获取最新准考证号的方法,
在数据库表中该字段设置为varchar..
可以通过 “order by 字段名 asc (desc)” 命令进行排序。
sql:select * from tablename order by id DESC;
用 DESC 表示按倒序排序(即:从大到小排序) ,用 ACS 表示按正序排序(即:从小到大排序)。
参考资料
csdn.csdn[引用时间2018-1-28]
---算法:记录个位数2的数据之间的间距 create by youhaoxinqin 2014-7-8 10:50 update by youhaoxinqin 2014-7-8 13:44
create table demo(
SSCID int identity(1,1),
SSCISSUE nvarchar(200),
SSCNO int
)
--初始数据
insert into demo(SSCISSUE,SSCNO) values('270070401-001',36642)
insert into demo(SSCISSUE,SSCNO) values('270070401-002',12738)
insert into demo(SSCISSUE,SSCNO) values('270070401-003',93873)
insert into demo(SSCISSUE,SSCNO) values('270070401-004',32579)
insert into demo(SSCISSUE,SSCNO) values('270070401-005',93914)
insert into demo(SSCISSUE,SSCNO) values('270070401-006',82309)
insert into demo(SSCISSUE,SSCNO) values('270070401-007',58517)
insert into demo(SSCISSUE,SSCNO) values('270070401-008',98172)
insert into demo(SSCISSUE,SSCNO) values('270070401-009',90320)
insert into demo(SSCISSUE,SSCNO) values('270070401-010',35304)
insert into demo(SSCISSUE,SSCNO) values('270070401-011',96748)
insert into demo(SSCISSUE,SSCNO) values('270070401-012',30941)
insert into demo(SSCISSUE,SSCNO) values('270070401-013',36642)
insert into demo(SSCISSUE,SSCNO) values('270070401-014',12738)
insert into demo(SSCISSUE,SSCNO) values('270070401-015',93872)
insert into demo(SSCISSUE,SSCNO) values('270070401-017',32579)
insert into demo(SSCISSUE,SSCNO) values('270070401-018',93912)
insert into demo(SSCISSUE,SSCNO) values('270070401-019',82302)
insert into demo(SSCISSUE,SSCNO) values('270070401-020',58522)
insert into demo(SSCISSUE,SSCNO) values('270070401-021',98172)
insert into demo(SSCISSUE,SSCNO) values('270070401-022',90320)
insert into demo(SSCISSUE,SSCNO) values('270070401-023',35304)
insert into demo(SSCISSUE,SSCNO) values('270070401-024',96748)
insert into demo(SSCISSUE,SSCNO) values('270070401-025',30922)
--检索数据
select * from demo where SSCNO like'%2'
--创建全局临时表
create table ##remmber_id_no(
remmberkey int identity(1,1),
id int ,
no int
)
--创建全局临时表
create table ##remmber_id_no2(
remmberkey int identity(1,1),
id int ,
no int
)
--创建偏移数据
insert into ##remmber_id_no2(id,no) values(0,0)
--将算法数据存入两个全局临时表
declare demo_cursor cursor for select sscid,sscno from demo
go
open demo_cursor
declare @id int
declare @no int
declare @count int
set @count=0
fetch next from demo_cursor into @id,@no
while @@FETCH_STATUS=0
begin
select @count=COUNT(*) from demo where SSCID=@id and SSCNO like'%2'
if(@count0)
begin
insert into ##remmber_id_no(id,no) values(@id,@no)
insert into ##remmber_id_no2(id,no) values(@id,@no)
end
fetch next from demo_cursor into @id,@no
end
close demo_cursor
deallocate demo_cursor
--得出id距离
select (t.id-t2.id) as ID距离 from
(select * from ##remmber_id_no where remmberkey not in(select top 1 remmberkey from ##remmber_id_no )) as t,
(select * from ##remmber_id_no2 where remmberkey not in(select top 1 remmberkey from ##remmber_id_no2 )) as t2
where t.remmberkey=t2.remmberkey
drop table ##remmber_id_no
drop table ##remmber_id_no2