如何修改标识自动加1

danger1 2006-08-30 12:53:46
我有一个表,当初设计的时候把主键设置为标识字段自动加1,后来发现用BCP把数据导出,然后在另外台机器导入的时候主键值改变了,所以只得把主键去掉标识然后才进行导入导出操作。
现在我想请问一下,如果我想导入数据完成后,用SQL 语句来实现把表的主键改成标识自动加1,该怎么写这个SQL语句。
也曾查了资料说无法修改标识,那SQL SERVER又是怎么实现的呢
...全文
382 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyxfly 2006-08-30
  • 打赏
  • 举报
回复
先去掉标识自动加1

这种好像只能先删除列,再创建identity列吧
danger1 2006-08-30
  • 打赏
  • 举报
回复
谢谢wei9625(emily)
danger1 2006-08-30
  • 打赏
  • 举报
回复
可能我没说清楚,该表的ID关联了另外两个表,所以ID值是不能改变的,也就是说在数据移植的时候,ID的数据是不能变的。 所以我现在的操作也只能是先去掉标识自动加1,然后导入数据,然后再恢复标识自动加1,不过这些都是在sql server的控制台进行的,因为最终是要交给客户使用的,客户什么都不懂,他只需要知道点SETUP就OK了,所以就需要用SQL语句来实现控制台的操作。不知道SQL SERVER是怎么实现的,跟踪也没跟踪出个所以然来
wei9625 2006-08-30
  • 打赏
  • 举报
回复
手工在管理器中把字段改为自增值,不用保存,点击工具栏中的save chang script的命令,把那段脚本拷出来就行了。
gahade 2006-08-30
  • 打赏
  • 举报
回复
先去掉ID列,再加上ID自增列

alter table 表名 drop column id
alter table 表名 alter column id int identity(1,1)
lxzm1001 2006-08-30
  • 打赏
  • 举报
回复
用临时表吧
danger1 2006-08-30
  • 打赏
  • 举报
回复
求助,分不够可以再加
danger1 2006-08-30
  • 打赏
  • 举报
回复
SET IDENTITY_INSERT 表名 on/off 对BCP导入数据无效,导入的时候还是认为ID标识自动增长,而且是从1开始增长,原来的ID数据不会被启用。
我的流程是创建数据库,然后BCP导入数据(数据为TXT文件),接下来我想要做的就是恢复ID标识自动增长。
fansino 2006-08-30
  • 打赏
  • 举报
回复
启动/关闭自动增长列方法:
SET IDENTITY_INSERT 表名 on/off
XiaoYang_1314 2006-08-30
  • 打赏
  • 举报
回复
子陌红尘 2006-08-30
  • 打赏
  • 举报
回复
1、在insert数据前,SET IDENTITY_INSERT target_table on;

2、数据导入之后,SET IDENTITY_INSERT target_table off;

3、重新设置identity当前值。

34,576

社区成员

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

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