我给你提供一个最好的方法
用存储过程来实现,这样是不会重复的!在服务器端实现
create proc spBill(
@Bill varchar(32) output,
@dt datetime output
)
as
declare
@s varchar(2)
select @dt=getdate()
--年
select @Bill=cast(datepart(year,@dt) as varchar)
--月
if len(cast(datepart(month,@dt) as varchar))=1
select @Bill=@Bill+'0'+cast(datepart(month,@dt) as varchar)
else
select @Bill=@Bill+cast(datepart(month,@dt) as varchar)
--日
if len(cast(datepart(day,@dt) as varchar))=1
select @Bill=@Bill+'0'+cast(datepart(day,@dt) as varchar)
else
select @Bill=@Bill+cast(datepart(day,@dt) as varchar)
--时
if len(cast(datepart(hour,@dt) as varchar))=1
select @Bill=@Bill+'0'+cast(datepart(hour,@dt) as varchar)
else
select @Bill=@Bill+cast(datepart(hour,@dt) as varchar)
--分
if len(cast(datepart(minute,@dt) as varchar))=1
select @Bill=@Bill+'0'+cast(datepart(minute,@dt) as varchar)
else
select @Bill=@Bill+cast(datepart(minute,@dt) as varchar)
--秒
if len(cast(datepart(second,@dt) as varchar))=1
select @Bill=@Bill+'0'+cast(datepart(second,@dt) as varchar)
else
select @Bill=@Bill+cast(datepart(second,@dt) as varchar)
go
通过当前的时间来得到单据号码,精确到秒是不会重复的