ITPub博客

首页 > 数据库 > 数据库开发技术 > DB2 和SQL Server自增列比较

DB2 和SQL Server自增列比较

原创 数据库开发技术 作者:zchbaby2000 时间:2018-09-21 14:57:58 0 删除 编辑

最近由于对SQL Server的自增列理解不够好,导致了一个设计问题,做了2个小例子解释一下

SQL Server的自增列
create table identitytest(
      id int identity(1,1),
      name varchar(20)
)
go
set IDENTITY_INSERT identitytest ON
go
insert into identitytest(id,name)values(1,'test1')
go
insert into identitytest(id,name)values(2,'test2')
go
set IDENTITY_INSERT identitytest OFF
go
insert into identitytest(name)values('test3')
go
set IDENTITY_INSERT identitytest ON
go
insert into identitytest(id,name)values(10000,'test4')
go
set IDENTITY_INSERT identitytest OFF
go
insert into identitytest(name)values('test5')

go
id      name
1       test1
2       test2
3       test3
10000   test4
10001   test5
(5 rows affected)
1>

SQL Server的自增列的值取决于表里面的此列的当前的最大值。


create table identitytest(
id bigint not null generated by default as identity (start with 1,increment by 1),
name varchar(20)
);
insert into identitytest(id,name)values(1,'test1');
insert into identitytest(id,name)values(2,'test2');
insert into identitytest(name)values('test3');
insert into identitytest(id,name)values(10000,'test4');
insert into identitytest(name)values('test5');

db2 => select * from identitytest;

ID                   NAME                
-------------------- --------------------
                   1 test1               
                   2 test2               
                   1 test3               
               10000 test4               
                   2 test5               

  5 record(s) selected.

db2 =>

DB2的自增列,当你手工插入自增列的值的时候,DB2会无视你插入的值,DB2用自增列的定义产生值。




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/725820/viewspace-2214688/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
喜欢各种数据库相关的开发,架构设计,运维和性能优化
  • 博文量
    242
  • 访问量
    90970