场景:
        不同的单据根据日期和单据流水自动生成顺序的单号。

解决办法:

(原)用于 SQLServer 自动创建单号的存储过程if exists(select id from sysobjects where id=object_id('proc_id_builder'))
(原)用于 SQLServer 自动创建单号的存储过程    
drop procedure proc_id_builder;
(原)用于 SQLServer 自动创建单号的存储过程
create procedure proc_id_builder(@id char(3))
(原)用于 SQLServer 自动创建单号的存储过程
AS
(原)用于 SQLServer 自动创建单号的存储过程
declare @sn varchar(12)
(原)用于 SQLServer 自动创建单号的存储过程
begin transaction 
(原)用于 SQLServer 自动创建单号的存储过程
if not exists(select 1 from t_parameter where c_id = @id)
(原)用于 SQLServer 自动创建单号的存储过程
begin
(原)用于 SQLServer 自动创建单号的存储过程    
return -1
(原)用于 SQLServer 自动创建单号的存储过程
end
(原)用于 SQLServer 自动创建单号的存储过程
select @sn = c_value from t_parameter where c_id = @id
(原)用于 SQLServer 自动创建单号的存储过程
if substring(@sn,1,8> convert(char(8),getdate(),112)
(原)用于 SQLServer 自动创建单号的存储过程
begin
(原)用于 SQLServer 自动创建单号的存储过程    
return -1
(原)用于 SQLServer 自动创建单号的存储过程
end
(原)用于 SQLServer 自动创建单号的存储过程
--生成单号
(原)用于 SQLServer 自动创建单号的存储过程
if substring(@sn,1,8< convert(char(8),getdate(),112)
(原)用于 SQLServer 自动创建单号的存储过程
begin
(原)用于 SQLServer 自动创建单号的存储过程    
select @sn = convert(char(8),getdate(),112+ '0001'
(原)用于 SQLServer 自动创建单号的存储过程
end 
(原)用于 SQLServer 自动创建单号的存储过程
else
(原)用于 SQLServer 自动创建单号的存储过程
begin                   
(原)用于 SQLServer 自动创建单号的存储过程    
select @sn = convert(char(12),convert(dec,@sn+ 1)
(原)用于 SQLServer 自动创建单号的存储过程
end
(原)用于 SQLServer 自动创建单号的存储过程
--更新单号
(原)用于 SQLServer 自动创建单号的存储过程
update t_parameter 
(原)用于 SQLServer 自动创建单号的存储过程    
set c_value = @sn
(原)用于 SQLServer 自动创建单号的存储过程 
where c_id = @id  
(原)用于 SQLServer 自动创建单号的存储过程
if @@error != 0
(原)用于 SQLServer 自动创建单号的存储过程
begin
(原)用于 SQLServer 自动创建单号的存储过程    
rollback transaction
(原)用于 SQLServer 自动创建单号的存储过程    
return -1
(原)用于 SQLServer 自动创建单号的存储过程
end
(原)用于 SQLServer 自动创建单号的存储过程
commit transaction
(原)用于 SQLServer 自动创建单号的存储过程
select @sn
(原)用于 SQLServer 自动创建单号的存储过程
return;
(原)用于 SQLServer 自动创建单号的存储过程

相关文章:

  • 2022-01-20
  • 2021-09-17
  • 2021-07-16
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-03
猜你喜欢
  • 2022-12-23
  • 2021-07-26
  • 2021-06-05
  • 2021-05-11
  • 2021-11-01
  • 2022-03-09
  • 2021-12-26
相关资源
相似解决方案