create function getTestUID()
returns VARCHAR(10)
as
BEGIN
DECLARE @UID VARCHAR(10)
DECLARE @UYEARMOTHN VARCHAR(6)
DECLARE @MaxId VARCHAR(10)
DECLARE @SORE INT
set @UYEARMOTHN = CONVERT(varchar(6),GETDATE(),112) --如果不想取当前年月的话,根据你的情况 直接赋值为 201802
select @MaxId = isnull(max(uId),0) from test222 -- 注意改成自己的表名
IF (@MaxId=0 )
BEGIN
SET @UID = @UYEARMOTHN+'001' --建议流水号设大些吧, 下面的判断相应的改
END
ELSE
BEGIN
SET @SORE = Convert(int,RIGHT(@MaxId,3))
IF(@SORE>=99)
BEGIN
set @UID = @UYEARMOTHN + convert(VARCHAR,(@SORE+1))
END
ELSE IF(@SORE>=9)
BEGIN
set @UID = @UYEARMOTHN + '0'+convert(VARCHAR,(@SORE+1))
END
ELSE IF(@SORE>0)
BEGIN
set @UID = @UYEARMOTHN + '00'+convert(VARCHAR,(@SORE+1))
END
END
RETURN @UID
END
select dbo.getTestUID()