求一个方法或存储过程。
(存储过程或函数方法)传入个字符串 ESPPYYMMDD和整形ID,然后把ID行的FHNo字段更新为FHPPYYMMDDXXXX. XXXX为FHNo字段开头为FHPPYYMMDD的行数+1转换成的字符串,4位。
(存储过程或函数方法)传入个字符串 ESPPYYMMDD和整形ID,然后把ID行的FHNo字段更新为FHPPYYMMDDXXXX. XXXX为FHNo字段开头为FHPPYYMMDD的行数+1转换成的字符串,4位。
希望得到一个存储过程的写法:
传入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#中的函数实现,也很期待。
C#就很简单了
用Int32.ToString( "0000" )即可
即:(29+1).ToString( "0000" )就是"0030"