设计一个编码规则的程序:
1、有一张Act的表里有一个字段叫“Code”(长度为6位)
2、有另外一张表SSN里存放着参照的Code,作为Act表中Code自增(自增Step是1)的依据,初始编码是100001
3、现在我往Act里批量的存放了一些数据。里面的Code比较混乱,如下(举例):
Code
430012
430016
430017
430018
430019
430024
430025
430026
4、之后存放数据的时候,就要利用一个编码规则程序,自动编写一个新的Code。
5、这个规则就是:先从SSN表里取出Code作为依据,然后查找Act表中的Code,要跳过其中已经存在的Code,自增一个Code。然后用最后生成的Code替换SSN中的Code作为下次的依据。
6、当然从目前状况看,“100001”不用避开已经存在的CODE,因为远远比它们小。但是比如当SSN中的Code已经自增到430011的时候,下次自增的时候,就要跳过已经存在的CODE,从上面那个表中得出,应该跳过“430012”。变成430013
7、编写一个c#的函数,可以用c#和SQL相结合。要求编码简洁高效。

解决方案 »

  1.   

    写一个存储过程执行一下不就完了么?CREATE PROCEDURE GetNextValue
    @currentVal int
    AS
    BEGIN
    declare @nextVal int  --定义一个存储下一序号的变量
             @nextVal = @currentVal
    set nocount on
    while exists(select * from Act where code = @nextVal )
    begin
    @nextVal = @nextVal + 1
    end
    return @nextVal
    END
    调用这个存储过程,获得下一个序号。 
       
     
     
     
     
        
     
       
     
    ==========================================
    ◆◆◆【易销网】www.ezshopi.com◆◆◆
    TaobaoAnalyzer.淘宝分析家-淘宝热销商品分析专家
    ==========================================
      

  2.   

    自己调试一下,用sqlCommand执行这个存储过程,取得返回的值。