日期:2014-05-19  浏览次数:20809 次

关于sql 主键
在建表的时候往往会用一个int型做主键,我在写winform的时候往表里添数据的时候,没有给主键赋值,而是用他自己加的那个东西,就是在SQL建表的时候自动给主键赋值的那个东西,一开始觉得很方便,渐渐发现了问题,主键的值只会加不会减,当把表里的数据全部删除之后,主键仍然按照删除前最大的int   加1.感觉这样没有止境.一定会出错的,不知道实际用的时候应该怎么给主键赋值
另外还又个问题很迷惑,没有参加过正式的开发,都是瞎做一些CS的简单的东西,我在想,难道软件写出来的时候还要把SQL什么的也给客户拷过去?不现实啊,具体应用的时候应该是怎么样的呢?


------解决方案--------------------
第一个问题,有两种解决办法:
1.可以不用自动增长的主键,但插入的时候要自己去算这个ID
2.使用自动增长的主键,如果你怕出错,可以使用longint,这个基本上是足够大的。
第二个问题,一般来讲SQL Server应该是由客户自己买,如果要让开发的软件公司买,那么软件公司也只是帮客户代买而已。
------解决方案--------------------
第一个问题:不要用delete删除,用truncate table