SQL server 2005中设置自动编号字段的方法 |
如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性 。在每个表中只能设置一个列的标识属性 。 注意: 只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性 。此外,不能为主键列设置标识属性 。 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为自动编号字段 。 2.获取自动编号的字段值 这里可以使用@@IDENTITY取得自动增加字段主键的值 (3)重新设置自动编号字段种子的起始值 如果用户将带有自动增加字段的表内容清空,由该字段的起始值将从原有的值开始增加,可以通过DBCC命令重新设置起始值 。 ---------------------------------------------- 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) |