回 帖 发 新 帖 刷新版面

主题:sql server 2000中关于流水号自动生成的问题

在书上看的,源例没有问题,下面是我仿写的:
Create function primarykey()
returns varchar(25)
as 
begin
declare @c varchar(25)
select @c='AA-'+'bb-'+right(10001+Min(bb),4)
from(select bb=right(aa,4)from cc with(xlock,paglock)
union all select 0)
a where not exists(select * from cc with(xlock,paglock)
where aa='AA-'+'bb-'+right(10001+a.bb,4)
)
return (@c)
end
go
--datename(yy,getdate())+'-'+datename(mm,getdate())+'-'+datename(dd,getdate())
Create table cc
(
aa char(25)primary key default dbo.primarykey(),--编号包括公司编号AA,部门编号bb,年,月,日
b int
)
insert into cc(b) values(1)
现在的问题是只插入了一行
插入第二行的时候:
[color=0000FF]服务器: 消息 515,级别 16,状态 2,行 1
无法将 NULL 值插入列 'aa',表 'SPeedy.dbo.cc';该列不允许空值。INSERT 失败。
语句已终止。[/color]
那条插入的一行也可以查询出来


源例:
Create function kuo()
  returns char(8)
as
   begin  
    declare @r char(8)
  select @r='BH'+right(1000001+MIN(BH),6)--------------------------
   from (select BH=right(BH,6) from jike with(xlock,paglock)
  union all select 0)
a where not exists(select * from jike with(xlock,paglock)
   where BH='BH'+right(1000001+a.BH,6)
)
return (@r)
end
go
Create table jike(
   BH char(8) primary key default dbo.kuo(),
   col int
)

实在想不出为什么会这样

回复列表 (共1个回复)

沙发

为 SPeedy.dbo.cc的aa列 指定默认值为''

我来回复

您尚未登录,请登录后再回复。点此登录或注册