自己再顶一下,是内容太多还是没说清楚?欢迎指正。

解决方案 »

  1.   

    另如果我想当从中间删除一张卡片记录时,后面新增的卡片要自动补断号,如何实现? 
      

  2.   

    怎么你的问题每次都是很多很多的内容?参考下面的例.
    /*
    标题:取得最小的断号
    作者:爱新觉罗.毓华 
    时间:2008-05-22
    地点:广东深圳
    */create table Account(Accountid int)insert into Account  values(1)
    insert into Account  values(2)
    insert into Account  values(5)--方法一
    select min_Accountid = min(m.Accountid) + 1 from 
    (
      select * , px = (select count(1) from account where Accountid < t.Accountid) + 1 from Account t
    ) m,
    (
      select * , px = (select count(1) from account where Accountid < t.Accountid) + 1 from Account t
    ) n
    where m.px = n.px - 1 and m.accountid <> n.accountid - 1/*
    min_Accountid 
    ------------- 
    3(所影响的行数为 1 行)
    */--方法二
    SELECT CASE WHEN NOT EXISTS(SELECT * FROM Account WHERE Accountid = 1) THEN 1  
                ELSE MIN(Accountid) + 1  
           END as min_Accountid
    FROM Account AS A 
    WHERE NOT EXISTS (SELECT * FROM Account AS B WHERE B.Accountid = A.Accountid + 1) /*
    min_Accountid 
    ------------- 
    3(所影响的行数为 1 行)
    */drop table Account
      

  3.   

    不好意思,前面表结构内容多了点,问题还是不多了,昨天合并起来其实只有两个疑难问题贴,还未完全解决,有空帮忙再看看吧。