订阅到Rss阅读器

设定Access数据库自增长字段初始值

最近在做论坛数据转换程序。例如表src, 表dest都有一个id自增长字段,(都是access数据库,起始值1 ,步长1)
表src中id,char两字段的值为
1、a
2、b
3、c
6、d
7、e
9、f
这样在将src中的记录插入表dest的时候会有麻烦,使得表dest中记录如下所示
1、a
2、b
3、c
4、d
5、e
6、f
这样造成dest和其它关联表中的数据难以对应 。因此有必要在向表dest中插入记录时 设置其id字段的起始值,然后再进行插入操作
http://access911.net/fixhtm/71FAB01E13DC.htm?tt=    发现如下文字:

通过以下语句,你可以在建表的时候指定其起始值和步进值:

CREATE TABLE tblNewOrder2 (
  OrderId AUTOINCREMENT (1000, 10), 
  ItemId LONG, Quantity LONG) 

你也可以用下面的语句修改下一个起始值和步进值:

ALTER TABLE tblOrder 
  ALTER COLUMN OrderId COUNTER (2000, 50) 


要重新开始:
ALTER TABLE tableName
  ALTER COLUMN OrderId COUNTER (1, 1) 


在 VBE 界面里面用以下代码:
docmd.runsql "ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1)"

这里要注意的是自动编号往往被用作标识记录的唯一性,但是 Jet 在用 DDL 语句更改自动编号的同时不会保证修改后的自动编号仍然保持唯一性,因此会出现标识号重复的现象。要避免这一现象最好把自动编号设定为主键、或者不可重复。

哈哈 看来我的问题可以解决了 ,虽然是很不起眼的东西 ,但是用到时候没有 就会很抓狂 ^_^
程序虽然简单 但还是决定 明天把代码贴出来

posted @ 2006-12-28 23:45 戏水 阅读(1664) 评论(4) 编辑 收藏

 回复 引用 查看   
#1楼[楼主] 2006-12-28 23:49 戏水      
哈哈 Sql Server 又如何处理呢? 大家说说
 回复 引用 查看   
#2楼 2006-12-29 14:49 Klesh Wong      
sql server 不是有导出/导入/复制等功能了吗?还要怎么处理?
 回复 引用   
#3楼 2007-05-23 19:21 曼[未注册用户]
帮帮忙
 回复 引用   
#4楼 2007-11-28 10:38 access911[未注册用户]
帖主可能没有看到我其他的几篇文章,看到了就知道这不是最好的解决方案


如何在已有数据的情况下更改某列的数据类型为“自动编号 递增”《表》
http://access911.net/index.asp?u1=a&u2=72FABE1E11DCE8F3


可以利用一个原理,ACCESS 表在新增记录时可以指定自动编号列的