首页 > 开发 > 综合 > 正文

如何获取指定表中指定字段内的可用编号

2024-07-21 02:42:48
字体:
来源:转载
供稿:网友
在对数据库编程的过程中,许多人经常会用一个ID列标记该记录的信息。但获得一个可用的编号后经常需要频繁的查找以使编号不被打断,本文将主要介绍一个解决此问题的示例,具体内容请参考下文:

/*过程名 getNum功能:  取得指定表的下一个可用的编号输入参数:   @tablName 表名@FileldName 即要查询的字段名.在不同的表编号所写的列名不是一样的.如有ID Num等@Num 返回下一个可用的编号  */CREATE PROCEDURE dbo.getNum  @tablName VARCHAR(8),@FileldName VARCHAR(8),@Num  VARCHAR(6) OUTPUTASDECLARE @Sql  VARCHAR(200)DECLARE @oldNum INT,@newNum VARCHAR(6)SET @Sql=''  SET @Sql='DECLARE Mycursor CURSOR FOR   SELECT '+ RTRIM(@FileldName) + ' FROM ' + RTRIM(@tablName) EXEC(@Sql)IF @@ERROR=0BEGINSET  @oldNum=1OPEN MycursorFETCH NEXT FROM Mycursor INTO @newNumWHILE @@FETCH_STATUS=0BEGINIF REPLICATE(0,3-LEN(@oldNum))+CAST(@oldNum AS VARCHAR) = @newNum SET @oldNum=@oldNum+1ELSEBEGIN SET @Num=REPLICATE(0,3-LEN(@oldNum))+CAST(@oldNum AS VARCHAR) RETURN  ENDFETCH NEXT FROM Mycursor INTO @newNum ENDCLOSE MycursorDEALLOCATE MycursorSET @Num=REPLICATE(0,3-LEN(@oldNum))+CAST(@oldNum AS VARCHAR) --如果顺序没有被打断RETURNEND   ELSERAISERROR('该表或列名不存在.请检查输入的表名和列名是否正确?',7,1)GO

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表