我是想把整个表的内容删完以后..
这个表的自增型字段从新记数..除了删除整个表然后再建表外还有没有好的办法? 

解决方案 »

  1.   

    SQL SERVER数据库:
    truncate table 表名  --不过它不能加 WHERE ,它会把所有的数据都删除
      

  2.   

    对SQL数据库来说,只能用
    truncate table 表名 否则自增字段不会重新开始计数
      

  3.   

    如果你不需要记录日志,就用truncate吧,只是数据恢复就难了
      

  4.   

    用的是ACCESS就删除记录后关闭连接再压缩一下就可以了uses ComObj;//压缩与修复数据库,覆盖源文件,顺便修改密码
    function CompressDataBase(AFileName,OldPassWord,NewPassWord: string): Boolean;
    const
      SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +
                          'Jet OLEDB:Database Password=%s;';
    var
      SPath,SFile: array [0..254] of Char;
      STempFileName: string;
      JE: OleVariant;
    begin
      GetTempPath(40,SPath);                      //取得Windows的Temp路径
      GetTempFileName(SPath,'~CP',0,SFile);       //取得Temp文件名,Windows将自动建立0字节文件
      STempFileName := SFile;                     //PChar->String
      DeleteFile(STempFileName);                  //删除Windows建立的0字节文件
      try
        JE := CreateOleObject('JRO.JetEngine');   //建立OLE对象,函数结束OLE对象超过作用域自动释放
        OleCheck(JE.CompactDatabase(Format(SConnectionString,[AFileName,OldPassWord]),
                 Format(SConnectionString,[STempFileName,NewPassWord])));
                                                  //压缩数据库
                                                  //复制并覆盖源数据库文件,如果复制失败则函数返回假,
                                                  //压缩成功但没有达到函数的功能
        Result := CopyFile(PChar(STempFileName),PChar(AFileName),False);
        DeleteFile(STempFileName);                //删除临时文件
      except
        Result := False;                          //压缩失败
      end;
    end;