SQL2005中设置自动编号字段【转】

简介: 如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。在每个表中只能设置一个列的标识属性。 具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号)。

如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。在每个表中只能设置一个列的标识属性。

具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号)。在包含标识列的表中插入值时,Microsoft SQL Server 将基于上一次使用的标识值(标识种子属性)和在创建列时指定的增量值(标识增量属性)自动生成下一个标识符。

注意:
只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。

修改列的标识属性

  1. 在对象资源管理器中,右键单击要更改其数据类型的列所在的表,再单击“修改”。此时,将在表设计器中打开该表。

  2. 清除要更改的列的“允许空”复选框。

  3. 在“列属性”选项卡中,展开“标识规范”属性。

  4. 单击“是标识”子属性的网格单元格,然后从下拉列表中选择“是”。
  5. 在“标识种子”单元格中键入值。此值将赋给表中的第一行。默认情况下将赋值 1。
  6. 在“标识增量”单元格中键入值。此值是基于“标识种子”依次为每个后续行增加的增量。默认情况下将赋值 1。

 

例如,假设要为添加到 orders 表的每行自动生成 5 位 Order ID,从 10000 开始并且每次递增 10。为此,应在“标识种子”中键入 10000,在“标识增量”中键入 10

如果更改表的任何标识属性,则将保留现有的标识值。新的设置值仅应用于添加到表中的新行。

注意:
如果频繁执行删除操作的表中存在标识列,则标识值之间会出现不连贯的情况。若要避免出现这种不连贯的情况,请不要使用标识属性。

当您在网格单元格外单击或使用 Tab 键移动到其他网格单元格后,“标识规范”属性的新值将赋给表设计器中的列。当您在表设计器中保存更改时,这些值将在数据库中生效。

 

 

 

 

 

1. 创建表时指定自动编号的字段
CREATE TABLE [dbo].[UserInfor](
 [UserID] [int] IDENTITY(100,2) NOT NULL,
 [UserName] [nchar](10) NOT NULL,

说明:创建一个用户信息表UserInfor,并指定UserID为自动编号字段。
其中:IDENTITY(100,2)表示字段的初始值为100,每次增量为2,如输入数据后第一次为100,第二次为102。

2.获取自动编号的字段值

这里可以使用@@IDENTITY取得自动增加字段主键的值

(3)重新设置自动编号字段种子的起始值
如果用户将带有自动增加字段的表内容清空,由该字段的起始值将从原有的值开始增加,可以通过DBCC命令重新设置起始值。
  DBCC CHECKIDENT (UserInfor,RESEED,0)
将UserInfor表的自动增加字段种子起始值设置为0,插入一条数据后自动字段的值为0+增量,如增量为1,则值为1

 ----------------------------------------------

右键你的表-->设计表-->找到你的id字段(类int型)-->标识-->是-->标识种子(初始值)-->标识递增量-->OK

---------------------------------

 

create table mytest 

id int primary key identity(1,1),--主键,自动+1 
name varchar(20) unique not null,--不允许重复,不允许为空 
Age tinyint, 
notetime smalldatetime default getdate() 

insert into mytest values ('张三',20,getdate()) 

insert into mytest (name,age)values ('李四',20)

 

来源:http://database.ctocio.com.cn/155/12160655.shtml

http://blog.csdn.net/jackmacro/article/details/5731187

重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。在每个表中只能设置一个列的标识属性。

具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号)。在包含标识列的表中插入值时,Microsoft SQL Server 将基于上一次使用的标识值(标识种子属性)和在创建列时指定的增量值(标识增量属性)自动生成下一个标识符。

注意:
只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
相关文章
|
6月前
|
SQL 存储 数据库
SQL 语句创建数据库表时列字段的初始化值
SQL 语句创建数据库表时列字段的初始化值
214 0
|
26天前
|
SQL
SQL语句两个字段或多个字段同时order by 排序
SQL语句两个字段或多个字段同时order by 排序
27 0
|
2月前
|
SQL JSON 关系型数据库
sql如何获取字段里的json值
sql如何获取字段里的json值
|
2月前
|
SQL
Sql语法:字段不为空
Sql语法:字段不为空
|
3月前
|
SQL Oracle 关系型数据库
sql语句两个字段合并或者两个字段拼接显示
sql语句两个字段合并或者两个字段拼接显示
|
4月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
56 0
|
4月前
|
SQL 关系型数据库 MySQL
SQL编程【MySQL 01】拆分列字段为行并根据类型翻译字段 > 1305 - FUNCTION x.help_topic_id does not exist 报错问题
SQL编程【MySQL 01】拆分列字段为行并根据类型翻译字段 > 1305 - FUNCTION x.help_topic_id does not exist 报错问题
36 0
|
4月前
|
SQL 关系型数据库 MySQL
Greenplum【SQL 02】ROW_NUMBER编号函数使用方法举例
Greenplum【SQL 02】ROW_NUMBER编号函数使用方法举例
58 0
|
4月前
|
SQL Oracle 关系型数据库
Greenplum【SQL 01】通过 timestamp 类型字段值实现数据的日期时段筛选+时间时段筛选(跨天时段及不跨天时段SQL详情)
Greenplum【SQL 01】通过 timestamp 类型字段值实现数据的日期时段筛选+时间时段筛选(跨天时段及不跨天时段SQL详情)
40 0
|
4月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
28 0