1、备份ACCESS数据库(这个是必须的)
2、打开数据库,右键点击要修改ID值的表A,打开“设计视图”,将ID字段的数据类型由“自动编号”改为“数字”,关闭保存。
3、然后打开表A,修改ID值,也可以修改已存在的其他数据。修改完毕后关闭表。(此刻ID字段是不能改回“自动编号”数据类型的)
4、右键单击表A,选择“复制”,然后右键点一下空白处,选择“粘贴”,表名随便写,如“AA”,下面选择“只粘贴结构”,然后点确定生成新表AA。
5、选中表AA,打开“设计视图”。把ID字段的数据类型改为“自动编号”,关闭保存。(此刻表AA是没有数据的,所以可以修改成功)
6、右键单击表A,选择“复制”,然后右键点一下空白处,选择“粘贴”,表名写刚生成的新表“AA”,下面选择“将数据追加到已有的表”,最后点确定。
7、然后将原表A改名为A111,将表AA改名为A。这样就实现了用新表替换旧表,仅ID值修改,其他内容不变。(提示:原来的表A可以不用改名,直接删除。但是我建议先改名作为备份,等新表测试成功后再删除)
可以通过update(更新)语句实现给该记录 *** 作。sql:update tablename set username ='zhangsan' where id =5解释:因为改变的是某条记录,所以必定有where条件来限定到此条语句,上面的举例就是通过id的唯一性先确定此条记录,之后通过update将tablename表中的username字段值进行更新。
思路:
1、首先搞清楚所有表的主外键关系
2、取消全部表的主键自增标识列,方便你后续的直接修改ID
例如:
exec sp_configure 'allow updates',1reconfigure with override
GO
----取消标识列标记
update syscolumns set colstat = 0 where id = object_id('表名') and colstat = 1
GO
----恢复标识列标记
update syscolumns set colstat = 1 where id = object_id('表名') and name = '标识列名称'
3、写个SQL脚本,修改ID,在修改的时候,一并更新全部表里的此ID值
例如:
declare @old_id as int,@new_id as intselect @old_id=12,@new_id=123
update 表名1 set id=@new_id where id=@old_id
update 表名2 set id=@new_id where id=@old_id
update 表名3 set id=@new_id where id=@old_id
.....
update 表名n set id=@new_id where id=@old_id
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)