日期:2014-05-18  浏览次数:20507 次

为什么我清空不了这个表的所有记录???????????????????????
我用的是VS2005     表名为:STAR

用   delete   from   star   能正确执行
但我想删除后编号仍然从1开始   .   我用   truncate   table   star   执行   出现错误

无效的   SQL语句;期待   'DELETE '、 'INSERT '、 'PROCEDURE '、 'SELECT '、或   'UPDATE '。


下面是我执行的方法
                ///   <summary>
                ///   只执行SQL命令,无返回
                ///   </summary>
                ///   <param   name= "strSQLpro "> SQL语句 </param>
                public   int   ExecuteSql(string   strSQL)
                {
                        con   =   new   OleDbConnection(connectionString);
                        cmd   =   new   OleDbCommand(strSQL,   con);
                        try
                        {
                                con.Open();
                                int   i   =   cmd.ExecuteNonQuery();
                                return   i;
                        }
                        catch   (Exception   ex)
                        {
                                throw   new   Exception(ex.Message);
                        }
                }

------解决方案--------------------
肯定用了自加了吧,server 2000就这样,他会一直加比如
1
2
3
你把第3行删了,成
1
2
,再insert一行,那么就成
1
2
4
如果你想要
1
2
3
这样的结果,就不要设成自加
手动insert段
------解决方案--------------------
楼上说的完全正确
MS SQL不支持truncate ,orcale里面倒是常用
------解决方案--------------------
呵呵
lz太大意了哦
顶一下
------解决方案--------------------
anncesky() ( ) 信誉:100 Blog 加为好友 2007-07-14 10:41:54 得分: 0


肯定用了自加了吧,server 2000就这样,他会一直加比如
1
2
3
你把第3行删了,成
1
2
,再insert一行,那么就成
1
2
4
如果你想要
1
2
3
这样的结果,就不要设成自加
手动insert段


-----------------------

如果是自增列,刪除的時候會出現這種情況。

但是,你沒看清,樓主使用的是TRUNCATE ,而不是DELETE。

如果使用的TRUNCATE ,自增列會重新從1開始的。
------解决方案--------------------