我是靠谱客的博主 激昂泥猴桃,最近开发中收集的这篇文章主要介绍SQL Server通用流水号生成存储过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SQL Server通用流水号生成存储过程

SQL Server通用流水号生成存储过程

 

 

 

代码
 
      
1 DROP PROCEDURE PRO_AutoLSH
2   GO
3   CREATE PROCEDURE PRO_AutoLSH
4 (
5   @letter varchar ( 10 ), -- 首字母,可以多个字母
6 @LSHkey varchar ( 20 ), -- 表中的流水号列名,最好是主键
7 @tablename varchar ( 20 ) -- 表名
8 )
9 AS
10 begin
11 DECLARE @LSHID NVARCHAR ( 20 )
12 DECLARE @TLSH VARCHAR ( 20 )
13 DECLARE @NUM INT
14 DECLARE @sql NVARCHAR ( 200 )
15 -- --查询该表最大的流水号
16 SET @sql = ' SELECT ISNULL(MAX(CONVERT(INT,SUBSTRING( ' + @LSHkey + ' ,8,4))),0)+1 FROM ' + @tablename
17 -- 创建临时表
18 CREATE TABLE TEMP1(TOTAL INT );
19 -- 写入查询得到的数据
20 INSERT INTO TEMP1 EXEC ( @sql );
21 -- 再查询出值
22 SET @NUM = ( SELECT TOTAL FROM TEMP1)
23 DROP TABLE TEMP1
24 -- 拼接下一个流水号:J+年份4位+月份2位+4位编号(如J2010120001)
25 SET @TLSH = @letter + SUBSTRING ( CONVERT ( VARCHAR ( 100 ), GETDATE (), 112 ), 1 , 6 ) + SUBSTRING ( CONVERT ( CHAR ( 5 ), 10000 + @NUM ), 2 , 4 )
26 SET @sql = ''
27 SET @sql = ' SELECT @LSH= ' + '''' + @TLSH + '''' + ' FROM ' + @tablename
28
29 EXEC sp_executesql @sql ,N ' @LSH NVARCHAR(20) OUTPUT ' , @LSHID OUTPUT SELECT @LSHID
30 end

 

 

 

posted on 2010-12-24 16:12  _蝶恋花 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/dielianhua/articles/SQLServer_3.html

最后

以上就是激昂泥猴桃为你收集整理的SQL Server通用流水号生成存储过程的全部内容,希望文章能够帮你解决SQL Server通用流水号生成存储过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(303)

评论列表共有 0 条评论

立即
投稿
返回
顶部