![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| 取得指定表的指定字段下一个可用的编号 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-2 ![]() |
||||||
|
取得指定表的指定字段下一个可用的编号
/* 过程名 getNum 功能: 取得指定表的下一个可用的编号 输入参数: @tablName 表名 @FileldName 即要查询的字段名.在不同的表编号所写的列名不是一样的.如有ID Num等 @Num 返回下一个可用的编号 编写时间:2006 12 28 最后修改时间:2006 12 28 */ CREATE PROCEDURE dbo.getNum @tablName VARCHAR(8), @FileldName VARCHAR(8), @Num VARCHAR(6) OUTPUT AS DECLARE @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=0 BEGIN SET @oldNum=1 OPEN Mycursor FETCH NEXT FROM Mycursor INTO @newNum WHILE @@FETCH_STATUS=0 BEGIN IF REPLICATE(0,3-LEN(@oldNum))+CAST(@oldNum AS VARCHAR) = @newNum SET @oldNum=@oldNum+1 ELSE BEGIN SET @Num=REPLICATE(0,3-LEN(@oldNum))+CAST(@oldNum AS VARCHAR) RETURN END FETCH NEXT FROM Mycursor INTO @newNum END CLOSE Mycursor DEALLOCATE Mycursor SET @Num=REPLICATE(0,3-LEN(@oldNum))+CAST(@oldNum AS VARCHAR) --如果顺序没有被打断 RETURN END ELSE RAISERROR('该表或列名不存在.请检查输入的表名和列名是否正确?',7,1) GO 本文来源:http://blog.csdn.net/heimaoxiaozi/archive/2007/08/13/1740552.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|