比如说: 后面加 0001 + 1
2007-06-21
编号如下 自动:
200706210001
200706210002
200706210003
到了下个月 2007-07-01 号 后面的4位。又从 0001 开始
200707010001
200707010002
200707010003 到了下个月 2007-08-01 号 后面的4位。又从 0001 开始
200708010001
200708010002
200708010003怎么写才会效率高??
2007-06-21
编号如下 自动:
200706210001
200706210002
200706210003
到了下个月 2007-07-01 号 后面的4位。又从 0001 开始
200707010001
200707010002
200707010003 到了下个月 2007-08-01 号 后面的4位。又从 0001 开始
200708010001
200708010002
200708010003怎么写才会效率高??
(
VAR_DATE VARCHAR(12),
INT_MAXID INT
)GOCREATE PROC PRC_GETMAXID
AS BEGIN
DECLARE @VAR_MAXVAL VARCHAR(12)
DECLARE @VAR_DATE VARCHAR(12)
DECLARE @INT_MAXID INT SET @VAR_DATE=CAST(YEAR(GETDATE()) AS VARCHAR)
+ LEFT('00' + CAST(MONTH(GETDATE()) AS VARCHAR),2)
+ LEFT('00' + CAST(DAY(GETDATE()) AS VARCHAR),2)
SELECT @INT_MAXID=INT_MAXID WHERE VAR_DATE=@VAR_DATE
IF NOT @INT_MAXID IS NULL BEGIN
SET @INT_MAXID=1
SET @VAR_MAXVAL=@VAR_DATE + LEFT(CAST(@INT_MAXID AS VARCHAR),4)
INSERT INTO SY_TABLMAXID (@VAR_DATE,@INT_MAXID)
END ELSE BEGIN
SET @INT_MAXID=@INT_MAXID+1
SET @VAR_MAXVAL=@VAR_DATE + LEFT(CAST(@INT_MAXID AS VARCHAR),4)
UPDATE SY_TABLMAXID SET VAR_DATE=@VAR_DATE,INT_MAXID=@INT_MAXID WHERE VAR_DATE=@VAR_DATE
END
SELECT @VAR_MAXVALEND
(
VAR_DATE VARCHAR(12),
INT_MAXID INT
)GOCREATE PROC PRC_GETMAXID
AS BEGIN
DECLARE @VAR_MAXVAL VARCHAR(12)
DECLARE @VAR_DATE VARCHAR(12)
DECLARE @INT_MAXID INT SET @VAR_DATE=CAST(YEAR(GETDATE()) AS VARCHAR)
+ LEFT('00' + CAST(MONTH(GETDATE()) AS VARCHAR),2)
+ LEFT('00' + CAST(DAY(GETDATE()) AS VARCHAR),2)
SELECT @INT_MAXID=INT_MAXID WHERE VAR_DATE=@VAR_DATE
IF NOT @INT_MAXID IS NULL BEGIN
SET @INT_MAXID=1
SET @VAR_MAXVAL=@VAR_DATE + LEFT(CAST(@INT_MAXID AS VARCHAR),4)
INSERT INTO SY_TABLMAXID VALUES(@VAR_DATE,@INT_MAXID)
END ELSE BEGIN
SET @INT_MAXID=@INT_MAXID+1
SET @VAR_MAXVAL=@VAR_DATE + LEFT(CAST(@INT_MAXID AS VARCHAR),4)
UPDATE SY_TABLMAXID SET VAR_DATE=@VAR_DATE,INT_MAXID=@INT_MAXID WHERE VAR_DATE=@VAR_DATE
END
SELECT @VAR_MAXVALEND