如何修改列的自增(IDENTITY)属性(用语名在查询分器中)

晓梦周生 2003-08-20 03:51:48
如题
...全文
97 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
晓梦周生 2003-08-21
  • 打赏
  • 举报
回复
to CrazyFor(太阳下山明朝依旧爬上来)
因为一个表中只能有一个标识列,所以你的方法不行,不能添加标识列
to pengdali(大力 V2.0)
你这样修改之后,表中已没有标识列
在企业表设计器中可以将标识列修改,所以应该可以用编程的方式修改,不知SQL-DMO中是否有相关的方法,有用过的朋友请帮帮忙
pengdali 2003-08-20
  • 打赏
  • 举报
回复
alter table tablename add id1 int

update tablename set id1=id

alter table tablename drop column id

exec sp_rename 'tablename.id1','id'



select cast (id as int) id,列..... into #temp from 表
drop table 表
select * into 表 from #temp
drop table #temp
caiyunxia 2003-08-20
  • 打赏
  • 举报
回复
SET IDENTITY_INSERT 表 ON
dilettante 2003-08-20
  • 打赏
  • 举报
回复
pls refer dbcc checkident bol
晓梦周生 2003-08-20
  • 打赏
  • 举报
回复
我的意思是将有标识的列改为无标识,然后修改其中的值,最后再将其修改为有标识的列,除了CrazyFor(太阳下山明朝依旧爬上来) 的办法外,还有其他的办法吗,各位帮帮忙??
hjb111 2003-08-20
  • 打赏
  • 举报
回复
alter table yourtable add colname int identity(1000,1) not for replication
dafu71 2003-08-20
  • 打赏
  • 举报
回复
alter table yourtable add column1 bigint(1,1) not null
CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
不能直接修改为标识列:
可以先加新的标识列,再设置允许修改标识列,再用原来的字段值填充标识列,再删除原字段,再对字段改名

ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
go
SET IDENTITY_INSERT 表 ON
go
update 表 set 编号1=编号
go
SET IDENTITY_INSERT 表 OFF
go
ALTER TABLE 表 DROP COLUMN 编号
go
exec sp_rename '表.编号1','编号'
go
amtyuranus 2003-08-20
  • 打赏
  • 举报
回复
什么意思?修改其类型?

amtyuranus 2003-08-20
  • 打赏
  • 举报
回复
什么意思?修改其类型?

34,575

社区成员

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

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