如何在 Sql Server 中添加数据时显示指定自增字段的值?
例表:
create table [dbo].[t_user]( [userid] int identity(1,1) unique not null, [username] nvarchar(50) not null )
如上表,当向表中插入数据时,自增字段 [userid] 是按当前已有值自动增长的,可使用下面语句:
insert [dbo].[t_user] ([username]) values ('Join')
语句执行后,[userid] 是自动生成的,如果插入前最大值是 5,那么执行该语句后就是 6。
如果希望手动指定 [userid] 的值,比如原表中已有值是 1,3,4,5 ,希望插入一条后的 [userid] 为 2,那么上面的语句就不行了。
应该怎么做呢?看如下语句:
set identity_insert [dbo].[t_user] on --允许指定自增字段的值 insert [dbo].[t_user] ([userid],[username]) values (2,'Join') set identity_insert [dbo].[t_user] off --关闭
用上面的语句插行后,就会插入一条 [userid] 为 2 的记录。但如果 [userid] 的类型不是自增型的,用上面的语句会出错。