sqlserver2008自增
‘壹’ sql Server 2008怎样添加自增列实现自增序号
SQL 2008与以往版本的用法是一样的。
--创建表时添加自增列,且从1开始
create table 表名
(id int identity(1,1) )
--给已存在的表添加自增列,且从1001开始,也可以从1开始
alter table 表名
add id int
identity(1001,1)
‘贰’ sqlserver2008数据表中自增值不连续是否有影响
这类自增字段是不会去补被删除的记录对应的ID的,就是说系统里记录一个最大值,每次增加记录都在这个值上增长,这类值在应用中不要去考虑让其连续,因为要连续代价太大,相当于重建个表重新生成这个字段值。
本质上自增的目的是唯一性 所以不连续是无所谓的
‘叁’ 求教在sqlserver2008中的表中怎么添加一列自增的列
1、例如给某表添加一个Num自增列,这张表已经有很多行数据了,通过sqlserver表设计器,添加一个新字段Num,如图所示,
‘肆’ SQL Server 2008怎样添加自增列实现自增序号
Altertabletablename
addrec_idintIDENTITY(1,1)NOTFORREPLICATIONNOTNULL
上面是SQL Server 2008的新增语句
tablename 表名
rec_id 新增列名
IDENTITY(1,1) 自增序号从1开始,每次加1
解释的应该很清楚了吧
‘伍’ SQL Server 2008怎样添加自增列实现自增序号
一、通过T-SQL代码.
代码如下:
alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL
这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1
二、通过企业管理器
打开对象资源管理器,新建表,如下图
‘陆’ SQL Server 2008怎样添加自增列实现自增序号
如果是现有的表,可以使用
altertable表名addsidintidentity(1,1);
语句来添加一个自增序列的字段。如果是新表,创建表的时候指定是自增的就好了
createtable表名(
sidintidentity(1,1),
......
‘柒’ sql server 2008中id如何设为自增
SQL Server
通过 IDENTITY 来设置
参数有2个,一个是“初始值” 一个是“增量”。
默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。
1> CREATE TABLE test_create_tab2 (
2> id INT IDENTITY(1, 1) PRIMARY KEY,
3> val VARCHAR(10)
4> );
5> go
1> INSERT INTO test_create_tab2(val) VALUES ('NO id');
2> go
(1 行受影响)
1> INSERT INTO test_create_tab2(id, val) VALUES (6, 'id no use');
2> go
消息 544,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'test_create_tab2' 中的标识列插入显式值。
1> INSERT INTO test_create_tab2(val) VALUES ('A');
2> INSERT INTO test_create_tab2(val) VALUES ('B');
3> INSERT INTO test_create_tab2(val) VALUES ('C');
4> INSERT INTO test_create_tab2(val) VALUES ('D');
5> go
1> SELECT * FROM test_create_tab2;
2> go
id val
----------- ----------
1 NO id
2 A
3 B
4 C
5 D
(5 行受影响)
-- 删除一个数据,造成数据不连续.
1> DELETE FROM test_create_tab2 WHERE id = 3;
2> go
(1 行受影响)
-- 允许将显式值插入表的标识列中
1> SET IDENTITY_INSERT test_create_tab2 ON
2> go
1> INSERT INTO test_create_tab2(id, val) VALUES (3, 'id is use');
2> go
(1 行受影响)
--不允许将显式值插入表的标识列中
1> SET IDENTITY_INSERT test_create_tab2 OFF
2> go
1> SELECT * FROM test_create_tab2;
2> go
id val
----------- ----------
1 NO id
2 A
3 id is use
4 C
5 D
(5 行受影响)
‘捌’ sql server 2008如何自增列从001开始
序列都是数字的,无法从001开始,只能从1开始,也可以从100开始,就是无法从001开始。
如果需要001,可以自己建立一个表,自己维护这个增长,一般生成字符串的序号,都是这样处理。
‘玖’ sql server 2008如何自增列从001开始
这样吧,再增加一个计算列,计算列从自增列映射过来
比如
create table #test1
(
Id int identity,
IdStr AS right('000'+CAST(Id AS varchar(50)),3) ,
a int
);
插入数据的时候只需要向a列插入数据就行了
insert into #test1(a) values(1);
insert into #test1(a) values(111);
结果中IdStr列就是从001开始自增,当然由于最多只截取3位字符串,所以当数值到达999以后就会从000开始循环递增了。