高手请帮忙!!谢谢!!!!!!!!!!

789456123 2003-09-14 06:48:57
我在新网有个sqlserver的数据库!上传了若干表,再用过一段时间后,某个表我想将一个int型的字段给为“标示”列!!!
怎么能既改变其字段属性,又保留原有的值???

我用如下办法总是出错:
ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
SET IDENTITY_INSERT 表 ON
update 表 set 编号1=编号 (错误提示:无法更新标识列编号1)
SET IDENTITY_INSERT 表 OFF
ALTER TABLE 表 DROP COLUMN 编号
exec sp_rename '表.编号1','编号'

在“update 表 set 编号1=编号”时总是出错:无法更新标识列编号1
没有编号重复,类型也没问题
由于是在远程,所以不能使用企业管理器!!
...全文
20 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-09-14
  • 打赏
  • 举报
回复
--备份数据
select * into #tb from 表

--将字段"编号"改为自动编号的列
alter table 表 drop column 编号
alter table 表 add column 编号 bigint identity(1,1)

--重新插回数据
set identity_insert 表 on
insert into 表(编号,其他字段列表) select * from #tb

--删除备份数据的临时表
drop table #tb
mjhnet 2003-09-14
  • 打赏
  • 举报
回复
ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
SET IDENTITY_INSERT 表 ON
go
update 表 set 编号1=编号
SET IDENTITY_INSERT 表 OFF
go
ALTER TABLE 表 DROP COLUMN 编号
exec sp_rename '表.编号1','编号','Column'

--祝你成功
j9988 2003-09-14
  • 打赏
  • 举报
回复
一定要原编号,新建一个空表
然后set identity_insert on
往空表内插入。
wenxindiaolong 2003-09-14
  • 打赏
  • 举报
回复
我个人的经验是删除后重建,但我知道这样达不到你的要求。

22,209

社区成员

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

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