本文介绍了如何插入身份的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的数据库表:employee(id int identity(1,1),名称varchar(40))


它有5条记录


ID名称
---------------
1 A
2 B
3 C
4 D
5 E


我删除了最后2条记录.
现在,如果我插入,下一条记录将被分配"6"到"ID"列.但是,我希望它插入"4".我应该怎么做..

注意:我无法修改/禁用Identity属性.

请帮忙..客户会吃掉我的工作,因为我必须提供一些演示,但是此问题仍未解决...

I have a simple database table :employee(id int identity(1,1), name varchar(40))


It has 5 records


ID Name
---------------
1 A
2 B
3 C
4 D
5 E


I deleted last 2 records.
Now , if i insert, the next record will be allocate ''6'' to the ''ID'' column. However , i want it to insert ''4''. HOw should i do it..

Note : I cant modify/disable Identity property.

PLease help.. Client will eat my job as i have to give some demo but this issue is still not resolved...

推荐答案


SET IDENTITY_INSERT myTable ON
INSERT INTO employee (id, name) VALUES(4, ‘D′)
SET IDENTITY_INSERT myTable OFF



这样您就可以插入带有旧ID的新记录.但是,强烈建议不要这样做.除非您要重新添加意外删除的记录,或者将现有数据添加到新创建的表中,否则您实际上应该只允许使用下一个数字来创建标识.只有一条记录应该具有该标识值.新记录不应获得旧的(甚至未使用的)值.



That will allow you to insert a new record with an old ID. However, this is highly discouraged practice. Unless you are re-adding a record that you accidentally deleted or you are adding existing data to a newly-created table, you should really just allow the identity to be created with the next number. Only one record should ever have that identity value. A new record should not get an old (even unused) value.


这篇关于如何插入身份的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 09:48