回复老大的留言,字数超过了,只能用邮件了

浪漫的菜鸟 发布于 2011/06/09 12:33
阅读 183
收藏 0
我的方法确实有问题。我用的是sqlserver2005
需要将一条记录先出入第一张表后,然后通过查询第一张表的记录,按插入时间降序排列得到一个ID号,再引用这个ID,构造一个完整的记录,将其插入到第二张表中(因为此ID是第一张表的唯一主键,自增长,也是第二章表的外键)。可是这样偶尔会出错。 得到的ID会是第一张表中插入此记录之前的ID。
 后来修改了第一张表的ID属性列,不让其自动增长。这样做虽然解决了前两张表的问题。但是另外还有一张表,它的记录是从第二张表中的记录抽取一部分属性列构成的(包含ID,且是唯一的,但和前两个表没有参照关系了)。
如果第一张表和第二章表中刚插入的记录通过一定的业务处理,记录到了第三张表中后。 很多情况下就需要删除,前两张表中包含此ID的所有记录。假如这期间没有其他记录插入前两个表,那么再次插入第一张表的记录,通过一定的业务处理,到达第三章表后,这条记录是插不进第三张表的,因为ID重复了。
所有,我想,既然SQLserver ,字段有自增长机制,那么插入之前,DBMS就应该知道插入的下一条记录的自增长字段的值。如果能把这个值查出来,问题就解决了。可是这个值能获取么?
加载中
0
笨蛋EGG
笨蛋EGG

这个题目和内容,看上去完全不搭边……

问题太长,我承认我没看完……

返回顶部
顶部