CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

如何将一主键列改为自增列 ?

楼主wangdotnet()2006-11-03 17:44:20 在 MS-SQL Server / 基础类 提问

如题 问题点数:20、回复次数:5Top

1 楼wangdotnet()回复于 2006-11-03 17:46:21 得分 0

顶Top

2 楼wyb0026(小小)回复于 2006-11-03 17:56:49 得分 0

第一步先不要把主键列改为自增列  
  create   table   dd(   a   int,v   char(10))  
  ........  
  declare   @a   int  
  set   @a=1  
  update     dd   set   a=@a,@a=@a+1    
   
  第二步   更新完之后   在企业管理起一改就行了Top

3 楼gc_ding(施主,给个妞泡好么)回复于 2006-11-03 18:22:52 得分 0

IDENTITY只能在如下情况下建立:  
  a.在创建表时创建新的IDENTITY列  
  b.在现有表中创建新的IDENTITY列  
   
  ***   直接在企业管理器里改最快  
   
  如果你用事件探察器追踪了一下,会发现原来sql也是创建了个新的表加了标识,然后把老的数据再复制过去Top

4 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2006-11-03 20:42:53 得分 0

将表的某个int字段改为自增字段  
  CREATE   TABLE   dbo.Tmp_A  
  (  
  ReasonId   int   NOT   NULL   IDENTITY   (1,   1),  
  Reason   varchar(200)   NULL  
  )     ON   [PRIMARY]  
  GO  
  SET   IDENTITY_INSERT   dbo.Tmp_A   ON  
  GO  
  IF   EXISTS(SELECT   *   FROM   dbo.A)  
    EXEC('INSERT   INTO   dbo.Tmp_A   (ReasonId,   Reason)  
  SELECT   ReasonId,   Reason   FROM   dbo.A   TABLOCKX')  
  GO  
  SET   IDENTITY_INSERT   dbo.Tmp_A   OFF  
  GO  
  DROP   TABLE   dbo.A  
  GO  
  EXECUTE   sp_rename   N'dbo.Tmp_A',   N'A',   'OBJECT'  
  GOTop

5 楼bimyboy(★浩天雪狐★)回复于 2006-11-04 14:05:27 得分 0

markTop

相关问题

关键词

得分解答快速导航

  • 帖主:wangdotnet

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo