declare @intnum int
declare @randnum varchar(20)
set @intnum= rand()*100000
set @randnum=cast(@intnum as varchar)
set @randnum='Y'+convert(char(8), getdate(), 112)+@randnum
select @randnum
create table T(NO varchar(20))
go
create function fun(@dt datetime)
returns varchar(20)
as
begin
declare @NO varchar(50)
select @NO=NO from T where NO like 'Y'+convert(char(8), @dt, 112)+'%'
if @NO is null
set @NO='Y'+convert(char(8), @dt, 112)+'01'
else
set @NO=left(@NO, 9)+right('00'+rtrim( (right(@NO, 2)+1) ), 2)
return @NO
end
insert T
select dbo.fun(getdate())
select * from T
--result
NO
--------------------
Y2007020301
Y2007020302
Y2007020303