使用编号表生成流水号的示例.sql
2012-05-19 08:48
357 查看
--编号表
CREATE TABLE tb_NO(
Name char(2) PRIMARY KEY, --编号种类的名称
Head nvarchar(10) NOT NULL DEFAULT '', --编号的前缀
CurrentNo int NOT NULL DEFAULT 0, --当前编号
BHLen int NOT NULL DEFAULT 6, --编号数字部分长度
DESCRIPTION NVARCHAR(50)) --编号种类说明
INSERT tb_NO SELECT 'CG','CG',0,4,N'采购订单'
UNION ALL SELECT 'CJ','CJ',0,4,N'采购进货'
UNION ALL SELECT 'JC','JC',0,4,N'进仓单'
UNION ALL SELECT 'ZC','ZC',0,4,N'转仓单'
UNION ALL SELECT 'CC','CC',0,4,N'出仓单'
GO
--获取新编号的存储过程
CREATE PROC p_NextBH
@Name char(2), --编号种类
@BH nvarchar(20) OUTPUT --新编号
AS
BEGIN TRAN
UPDATE tb_NO WITH(ROWLOCK) SET
@BH=Head+RIGHT(POWER(10,BHLen)+CurrentNo+1,BHLen),
CurrentNo=CurrentNo+1
WHERE Name=@Name
COMMIT TRAN
GO
--获取 CJ 的新编号
DECLARE @bh char(6)
EXEC p_NextBH 'CJ',@bh OUT
SELECT @bh
--结果: CJ0001
EXEC p_NextBH 'CJ',@bh OUT
SELECT @bh
--结果: CJ0002
GO
--获取 CC 的新编号
DECLARE @bh char(6)
EXEC p_NextBH 'CC',@bh OUT
SELECT @bh
--结果: CC0001
EXEC p_NextBH 'CC',@bh OUT
SELECT @bh
--结果: CC0002
CREATE TABLE tb_NO(
Name char(2) PRIMARY KEY, --编号种类的名称
Head nvarchar(10) NOT NULL DEFAULT '', --编号的前缀
CurrentNo int NOT NULL DEFAULT 0, --当前编号
BHLen int NOT NULL DEFAULT 6, --编号数字部分长度
DESCRIPTION NVARCHAR(50)) --编号种类说明
INSERT tb_NO SELECT 'CG','CG',0,4,N'采购订单'
UNION ALL SELECT 'CJ','CJ',0,4,N'采购进货'
UNION ALL SELECT 'JC','JC',0,4,N'进仓单'
UNION ALL SELECT 'ZC','ZC',0,4,N'转仓单'
UNION ALL SELECT 'CC','CC',0,4,N'出仓单'
GO
--获取新编号的存储过程
CREATE PROC p_NextBH
@Name char(2), --编号种类
@BH nvarchar(20) OUTPUT --新编号
AS
BEGIN TRAN
UPDATE tb_NO WITH(ROWLOCK) SET
@BH=Head+RIGHT(POWER(10,BHLen)+CurrentNo+1,BHLen),
CurrentNo=CurrentNo+1
WHERE Name=@Name
COMMIT TRAN
GO
--获取 CJ 的新编号
DECLARE @bh char(6)
EXEC p_NextBH 'CJ',@bh OUT
SELECT @bh
--结果: CJ0001
EXEC p_NextBH 'CJ',@bh OUT
SELECT @bh
--结果: CJ0002
GO
--获取 CC 的新编号
DECLARE @bh char(6)
EXEC p_NextBH 'CC',@bh OUT
SELECT @bh
--结果: CC0001
EXEC p_NextBH 'CC',@bh OUT
SELECT @bh
--结果: CC0002
相关文章推荐
- 使用编号表按日期生成流水号的示例.sql
- 使用sql生成流水号格式YYYYMMDD0001-YYYYMMDD9999
- 查表法生成流水号的示例.sql
- 生成纯数字随机编号的示例.sql
- 融合了补号处理的编号生成处理示例.sql
- 生成纯字母随机编号的示例(大小写混合).sql
- 使用临时表进行编号重排的处理示例.sql
- 使用UPDATE进行编号重排的处理示例.sql
- 使用子查询进行编号重排的处理示例.sql
- 生成纯字母随机编号的示例(仅大小或者小写).sql
- 查表法按日期生成流水号的示例.sql
- PowerDesigner生成SQL语句时不使用Domain
- Eclipse使用generator,自动生成Sql和Bean
- SQL : 自动生成订单编号
- 使用自定义注解生成简单查询sql语句
- 怎么使用T-sql生成两位字母
- RailsCasts中文版,#15 Fun with Find Conditions 使用hash为查询条件以便生成正确语法的SQL查询
- mysql 生成流水号 存储过程 订单编号
- 自动生成符合Sqlachemy的Model: sqlautocode使用方式
- Python SQL查询并生成json文件操作示例