SQL server 2005中设置自动编号字段的方法

作者:jackmacro 时间:2024-01-12 13:55:47 

如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性。在每个表中只能设置一个列的标识属性。
具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号)。在包含标识列的表中插入值时,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.获取自动编号的字段值

SQL server 2005中设置自动编号字段的方法

这里可以使用@@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)
标签:SQL,server,2005,自动编号
0
投稿

猜你喜欢

  • 基于Python os模块常用命令介绍

    2023-09-09 01:53:43
  • Python3爬虫教程之利用Python实现发送天气预报邮件

    2023-10-25 14:06:44
  • Python matplotlib 画图窗口显示到gui或者控制台的实例

    2023-08-03 22:29:09
  • Mysql删除数据以及数据表的方法实例

    2024-01-22 19:53:04
  • Python使用matplotlib实现基础绘图功能示例

    2023-08-31 03:24:02
  • C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库

    2024-01-27 23:55:45
  • python基于gevent实现并发下载器代码实例

    2024-01-01 00:31:53
  • Python函数用法和底层原理分析

    2023-09-13 23:42:37
  • Python中列表的一些基本操作知识汇总

    2022-04-08 07:12:28
  • Python实现的IP端口扫描工具类示例

    2023-02-25 07:22:25
  • JavaScript实现自动变换表格边框颜色

    2024-06-07 15:25:53
  • Python3.5多进程原理与用法实例分析

    2021-11-28 14:05:03
  • MySQL错误中文参照列表

    2010-09-30 14:41:00
  • Python字符串、元组、列表、字典互相转换的方法

    2022-10-28 20:25:51
  • Linux下编译安装MySQL-Python教程

    2021-05-03 05:05:40
  • golang 使用sort.slice包实现对象list排序

    2023-06-21 18:25:46
  • JavaScript对象的property属性详解

    2024-05-05 09:22:57
  • vue中view-model双向绑定基础原理解析

    2024-05-28 15:53:17
  • django 消息框架 message使用详解

    2021-06-21 17:22:29
  • python 教程实现 turtle海龟绘图

    2022-03-19 10:45:35
  • asp之家 网络编程 m.aspxhome.com