概述
SQL Server通用流水号生成存储过程
SQL Server通用流水号生成存储过程
![](https://file2.kaopuke.com:8081/files_image/2023061121/202306112145041604876.gif)
![](https://file2.kaopuke.com:8081/files_image/2023061121/202306112145049899736.gif)
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
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通用流水号生成存储过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复