现在的位置: 首页 > 综合 > 正文

关于access数据库里的AutoNumber字段类型的…

2012年07月14日 ⁄ 综合 ⁄ 共 1149字 ⁄ 字号 评论关闭

今天遇到一个Access的问题:如何直接利用一条直接修改的SQL语句来让我的表中AutoNumber的类型的字段重新排列一遍呢?大家都知道对于AutoNumber类型的字段,当delete一条记录后再insert一条,那么AutoNumber会继续加1,所以有过删除记录的表的AutoNumber字段总是不能连续的,今天想把他们弄成连续的,搞了半天,除非用把这个表导出到另一张表,重新建一个AutoNumber字段来实现外,还真找不出能直接修改的办法。

另外,记录一下,建立一个带有自动增加类型的字段的SQL语句是:
CREATE TABLE tblUserInfo(user_id AUTOINCREMENT);
这样用可以定义init和step的值:
CREATE TABLE tblUserInfo(user_id AUTOINCREMENT(200,50));
用Counter来替换AutoIncrement也可以。
如果想修改这个表的自动增加字段的init和step值时可以这样:
ALTER TABLE tblOrder ALTER COLUMN OrderId COUNTER (2000, 50);
但是如果我想单独的增加init或step值该怎么写呢?

其他的:
Please realize that Jet won't prevent you from altering AutoNumber seed and increment values that produce duplicate values. However, if the AutoNumber column has been designated as the primary key or it contains a unique index, you will be prevented from saving rows with duplicates.

  //增加一个自动增长的字段
  ADOX.ColumnClass col = new ADOX.ColumnClass();
col.ParentCatalog 
= cat;
col.Type
=ADOX.DataTypeEnum.adInteger; // 必须先设置字段类型
col.Name = "id";
col.Properties[
"Jet OLEDB:Allow Zero Length"].Value= false;
col.Properties[
"AutoIncrement"].Value= true;
tbl.Columns.Append (col,ADOX.DataTypeEnum.adInteger,
0);

关于用ADOX创建ACCESS数据库和表的方法:
http://blog.csdn.net/net_lover/archive/2004/06/08/6963.aspx

抱歉!评论已关闭.