如何修自增长的值

w66187564 2007-12-15 11:18:04
比如
OperatorID ....
1 ....
3 ....
OperatorID为自增长标识列,由于我调试的时候执行了一次,故变成3了,本来是2的,现在我想改回2,该怎么改?
我用update T_OperatorInfo set OperatorID=2 where.... 语句修改
得到的提示是:无法更新标识列 'OperatorID'。
该怎么改呢?
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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 行)
*/

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧