导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

如何修自增长的值

w66187564 2007-12-15 11:18:04
比如
OperatorID ....
1 ....
3 ....
OperatorID为自增长标识列,由于我调试的时候执行了一次,故变成3了,本来是2的,现在我想改回2,该怎么改?
我用update T_OperatorInfo set OperatorID=2 where.... 语句修改
得到的提示是:无法更新标识列 'OperatorID'。
该怎么改呢?
...全文
69 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenW 2008-09-19
这个帖子对我有收藏价值。
回复
hui_hui_2007 2007-12-16
自增列也可以用update修改的呀.不过要设置一下,正常情况下是由系统自动维护的.
请楼主查询帮助:
SET IDENTITY_INSERT
DBCC CHECKIDENT
回复
w2jc 2007-12-16
自增列不能用UPDATE修改,是系统自动维护的。
如果实在要修改,使用


DBCC CHECKIDENT

-- 例如,以下命令不重置而只是显示当前的Identity ID值
DBCC CHECKIDENT ('TableName', NORESEED);


你可以查联机文档看如何使用,非常详细。
回复
hui_hui_2007 2007-12-15
强行插入自增字段值的方法

CREATE TABLE [dbo].[Table1] (
[myid] [int] IDENTITY (1, 1) NOT NULL ,
[mytext] [char] (10)
)

--插入数据
insert into table1 (mytext) values('a111')
insert into table1 (mytext) values('a222')
insert into table1 (mytext) values('a333')
insert into table1 (mytext) values('a444')
insert into table1 (mytext) values('a555')

--查询并看结果
select * from table1

/*
myid mytext
----------- ----------
1 a1
2 a222
3 a333
4 a444
5 a555

(所影响的行数为 5 行)
*/

--去除自增
set identity_insert table1 on

insert into table1 (myid,mytext) values(100,'a111')
insert into table1 (myid,mytext) values(110,'a222')

--查询并看结果
select * from table1
/*
myid mytext
----------- ----------
1 a111
2 a222
3 a333
4 a444
5 a555
100 a111
110 a222

(所影响的行数为 7 行)
*/

--再次设置为自增
set identity_insert table1 off

--插入数据
insert into table1 (mytext) values('a111')
insert into table1 (mytext) values('a222')
insert into table1 (mytext) values('a333')
insert into table1 (mytext) values('a444')
insert into table1 (mytext) values('a555')

--查询并看结果
select * from table1

/*
myid mytext
----------- ----------
1 a111
2 a222
3 a333
4 a444
5 a555
100 a111
110 a222
111 a111
112 a222
113 a333
114 a444
115 a555

(所影响的行数为 12 行)
*/
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告