+ -
当前位置:首页 → 问答吧 → 数据库设计主键自动编号问题

数据库设计主键自动编号问题

时间:2011-12-19

来源:互联网

SQL数据库中设计时有一个报修表(报修单号,设备名称,报修时间),想让用户在使用时只需要输入设备名称,然后自动生成报修单号和报修时间,但是不知道怎么写代码,因为不是同步输入的,所以显示主键不能为空,怎么办?求大侠指教!报修单号形式如BX2011122001,

作者: fgh013   发布时间: 2011-12-19

用触发器~

作者: sjcss   发布时间: 2011-12-19

本来想用来着'但是代码不太会写'可否讲的详细一点'谢谢!

作者: fgh013   发布时间: 2011-12-20

用函数吧~
SQL code

create FUNCTION auto_bxdh()
RETURNS VARCHAR(20)
as 
begin
declare @dh  varchar(20)
set @dh=''
select @dh=max(报修单号) from 报修表 
where 报修单号 like 'BX'+replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')+'%'
if(@dh<>'')
set @dh=substring(@dh,1,10)+right('0'+cast(cast(right(@dh,2) as int)+1 as varchar(2)),2)
 else 
set @dh='BX'+replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')+'01'

return @dh
end


在字段的默认值上设为dbo.auto_bxdh()就可以了

作者: sjcss   发布时间: 2011-12-20