sqlserver 如何强行 更新 递增主键列 identity

xushen8314 2009-07-25 10:53:34
现有的数据中 递增主键 已经存在数值 我想更新为别的新数据 请我应该如何操作?
...全文
1016 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdhdy 2009-07-25
  • 打赏
  • 举报
回复
对,就是这样。
xushen8314 2009-07-25
  • 打赏
  • 举报
回复
问题已经解决

那就先转换到普通列 更新完后 换回来

具体是在企业管理器里面操作的

先把递增标识去掉

然后更新

然后重新加上

不影响以后数据的插入,系统会自动判断递增种子的起点
feixianxxx 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xushen8314 的回复:]
    用了  set  identity_insert  on  只能插入时用,不能Update. 
   
 
[/Quote]
那就先转换到普通列 更新完后 换回来

--创建测试表
CREATE TABLE t1(ID int IDENTITY,A int)
GO
--插入记录
INSERT t1 VALUES(1)
GO

--1. 将IDENTITY(标识)列变为普通列
ALTER TABLE t1 ADD ID_temp int
GO

UPDATE t1 SET ID_temp=ID
ALTER TABLE t1 DROP COLUMN ID
EXEC sp_rename N't1.ID_temp',N'ID',N'COLUMN'
INSERT t1 VALUES(100,9)
GO

--2. 将普通列变为标识列
CREATE TABLE t1_temp(ID int,A int IDENTITY)
SET IDENTITY_INSERT t1_temp ON
INSERT t1_temp(ID,A) SELECT * FROM t1
SET IDENTITY_INSERT t1_temp OFF
DROP TABLE T1
GO

EXEC sp_rename N't1_temp',N't1'
INSERT t1 VALUES(109999)
GO

--显示处理结果
SELECT * FROM t1
/*--结果:
ID A
----------------- -----------
1 1
100 9
109999 10
--*/


xushen8314 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sdhdy 的回复:]
题目看错了,插入数据可以,更新不可以。
除非把自增属性去掉。
[/Quote]

去掉再加上 会影响别以后插入的数据吧?
sdhdy 2009-07-25
  • 打赏
  • 举报
回复
题目看错了,插入数据可以,更新不可以。
除非把自增属性去掉。
xushen8314 2009-07-25
  • 打赏
  • 举报
回复

用了 set identity_insert on 只能插入时用,不能Update.

--小F-- 2009-07-25
  • 打赏
  • 举报
回复
先set identity_insert tableName on
再使用更新语句
再set identity_insert tableName off
feixianxxx 2009-07-25
  • 打赏
  • 举报
回复
--把自增关掉 
set identity_insert 表名 on
update ....
--然后关掉
set identity_insert 表名 off
sdhdy 2009-07-25
  • 打赏
  • 举报
回复
--1、
create table tablename(id int identity(1,1))
go

insert into tablename default values
go
select * from tablename
go
drop table tablename
go

--2、
set identity_insert tablename on
insert tablename(id) select 1
set identity_insert tablename off
csdyyr 2009-07-25
  • 打赏
  • 举报
回复
set identity_insert tableName on
update ...
set identity_insert tableName off

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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