-------------------表
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