sqlserverid,sqlserverid自动增长

如何得到SqlServer的自增ID

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

如何使sqlserver的id 从20120909001开始增长呀?因为是我做的是考试系统,要用它作为准考证号。在线等。加分

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..

怎么让SQLServer的id按照数字大小顺序排序

可以通过 “order by 字段名 asc (desc)” 命令进行排序。

sql:select * from tablename order by id DESC;

用 DESC 表示按倒序排序(即:从大到小排序) ,用 ACS 表示按正序排序(即:从小到大排序)。

参考资料

csdn.csdn[引用时间2018-1-28]

SQLserver id直接的算法

---算法:记录个位数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


标题名称:sqlserverid,sqlserverid自动增长
文章路径:http://cdiso.cn/article/hocese.html

其他资讯