1.CREATE TABLE 表名(
字段名 [int] IDENTITY (1, 1) NOT NULL , //--(seed = 1,increment = 1) 從1開始,每次遞增1
...
)
2.在SQL SERVER中,所有整数类型的列都可以定义成自增长列,叫作“标识”,
它通过设定“标识种子”和“标识递增量”来实现功能。
列如:
列 类型 标识 标识种子 标识递增量
---- ------- ---- ------- ----------
test tinyint √ 1 1
当你插入一行后,会从1开始自动的赋值。(1、2、3、4……255)
方法为:
1、选中表;
2、右击鼠标,设计;
3、选中列(整数类型)
4、设定标识为“是“(默认为“否”)、标识种子和标识递增量(一般为1)。
3.给定指定值自增
1).当数据库表字段的列设置为自增列后,不能人为改变自增列的值
2).但有时候在导数据或公用配置过程中,有些基础设置的值是不变的或者是固定,这样在新起项目或导数据时会出现问题。
怎么才能修改自增列的值,让导入的数据按我们指定的值存放呢,
3).下面介绍一种简单的数据设置方法:
IDENTITY_INSERT
参数:ON(开始) OFF(结束)
注:此方法只可插入新值,仍然不能修改原有Identity列的值
示例:
SET IDENTITY_Insert TestTABLE ON insert TestTABLE(IDENTITYID,Code,XX,XX) VALUES(43,'','xx','xx'); SET IDENTITY_INSERT TestTABLE OFF
说明:
TestTable:数据库表名
IDENTITYID:自增列字段
这样我们就可以轻松进行数据导入,或写入指定值的数据了
4、取自增最新值
SELECT IDENT_CURRENT('tablename') + IDENT_INCR('tablename') as newid
IDENT_CURRENT( 'table_name' ) 返回为指定的表或视图生成的最后一个标识值。所生成的最后一个标识值可以针对任何会话和任何作用域。
SCOPE_IDENTITY 返回插入到同一作用域中的标识列内的最后一个标识值。一个范围是一个模块:存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
IDENT_INCR ( 'table_or_view' ) 返回增量值(返回形式为 numeric (@@MAXPRECISION,0)),该值是在带有标识列的表或视图中创建标识列时指定的。