Access 中如果用SQL语句建立表的时候,声明自动编号类型的字段用"Counter",如Create Table1 (FieldName Counter ) 执行没有问题。而用Alter Table1 Alter Column FieldName Counter 便不行。
而  Alter Table1 Alter Column FieldName Number 却是可以的。   有谁知道这是怎么回事,我应该用什么SQL语句把一个字段从“整数”类型强制转换成“自动编号”类型呢?(开发语言中需要动态变换,所以,不用Access中的表设计器)   致敬!期盼回音。

解决方案 »

  1.   

    create table Table1 (Field1 Counter)alter table Table1 alter Field1 Number
    字段Field1改成了整型 
    alter table Table1 alter Field1 Counter 
    字段Field1又改成了自动编号 执行alter table时要确保表没有被打开,而且由整型修改成自动编号时如果表里有数据会失败,没有数据是可以的。
    不太清楚你为什么要“动态变换”,可以设为整型,然后添加记录时程序自动计算,不是很好控制吗
      

  2.   

    谢谢tjianliang,我现在遇到的问题实际上是由备份数据库中的表中的一部分记录引起的。
    在备份过程中,因为Table1和Table2是主从表,所以,编号的对应就显得比较重要,备份固然容易,
    但是,我在恢复的过程中,就遇到了不能够用Insert语句把原来的编号插入,而,如果不插入,那么
    自动生成的编号又肯定不是原来的编号,所以,我只好退而求次: 在恢复的过程中,先把编号字段
    变成普通的整形字段,然后,在导入数据以后,马上恢复现场,在把编号字段类型变回来,也就是再变成自动编号的类型,结果,事与愿违,就出现了上面的尴尬一幕。现在程序做到了这里,眼睁睁的看着走不过去,十分痛心。 万望大家帮助我。
    要不,这样也行,帮我出一个备份/恢复两个带自动编号主从表中一部分数据记录的思路也好呀。
      

  3.   

    不同意 cn2002boy() 的看法:这个问题我认为,并不是简单的语法表达上的问题。