-------------------表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Code]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Code]
GO

CREATE TABLE [dbo].[Code] (
 [id] [int] IDENTITY (1, 1) NOT NULL ,
 [code] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [codenumber] [bigint] NULL ,
 [info] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

 

----------------存储过程

/*
这个存储过程主要是用来生成各种各样的单号的。传入一个特别码单号来分清他对应的是那一个类型单号的最大值
*/
create        PROCEDURE [dbo].[addmaxsto] @Code varchar(20) ,@ouototal varchar(50)='' output AS
declare @orderidcard varchar(14)
declare @temp varchar(50)
if (select  left(codenumber,8)  from  code where code=@Code)=(select convert(varchar(8),getdate(),112))--如果是同一天
  begin
    UPDATE code SET codenumber =codenumber +1 where code=@Code    --在原来的单号上加1
  end
else
  begin
     set @orderidcard=(cast((select convert(varchar(8),getdate(),112))as varchar(50)))+'00001' --生成单的编号
     UPDATE code SET codenumber =@orderidcard where code=@Code
  end

 select top 1 @ouototal=codenumber   from (select * from  code where code=@Code)  

output

 

GO

相关文章:

  • 2021-11-19
  • 2021-07-03
  • 2022-01-24
  • 2022-12-23
  • 2021-12-27
  • 2021-12-27
猜你喜欢
  • 2021-11-13
  • 2021-07-27
  • 2022-12-23
  • 2022-01-14
  • 2022-01-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案