设置主键自增

https://www.cnblogs.com/michellexiaoqi/p/8031294.html
SQL server-自增主键
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)),该值是在带有标识列的表或视图中创建标识列时指定的。

你可能感兴趣的:(设置主键自增)