求一个方法或存储过程。
(存储过程或函数方法)传入个字符串 ESPPYYMMDD和整形ID,然后把ID行的FHNo字段更新为FHPPYYMMDDXXXX.  XXXX为FHNo字段开头为FHPPYYMMDD的行数+1转换成的字符串,4位。

解决方案 »

  1.   

    很感谢你们回复我的问题,可能是我描述的不够清晰吧。现在再具体的描述一遍。
    希望得到一个存储过程的写法:
    传入2个参数 string _headstr , int _Id
    Id为数据库表A中的主键,想对表A中的PNo字段执行1个更新操作。
    1.   count(select id from 表A where PNo like _headstr%)
    2.   把上面统计的结果加1,转化成字符串,要求是4位,位数不够用0代替。如上面结果得到的是29,我希望能转化成0030
    3.   用xxxx字符串代替上述步骤得到的字符串,然后与_headstr连接,形成_headstrxxxx字符串
    4.   update 表A set PNo='headstrxxxx' where Id=_Id就是上面这些步骤,因为经常要对记录做上述步骤,所以系统在存储过程中实现。
    数据库中如何把数字转化成4位长度的字符串,我不会,用C#我会做,但感觉还是存储过程好些,望高手赐教。如果是C#中的函数实现,也很期待。
      

  2.   

    这样应该简单了吧?听说用CASE 可以实现,涉及到数字和字符串的转化,以及字符串的相加。都放到这个存储过程过,应该怎么写呢?谢谢赐教~~~
      

  3.   

    说实话存储过程来做很麻烦……
    C#就很简单了
    用Int32.ToString( "0000" )即可
    即:(29+1).ToString( "0000" )就是"0030"
      

  4.   

    但是涉及到统计,而且这个步骤又常被执行。我刚才终于找到解决方法了。用到count,str,repalce,+ 就搞定了