ALTER function genJONO(@X varchar(10),@R int)
returns nvarchar(10)
as
begin
--DECLARE @X NVARCHAR(10)
--SET @X = 'A0000009'
DECLARE @Y nvarchar(10)
declare @i int
DECLARE @Z int
DECLARE @N INT
select @N=JO from BO_JO where BINDID=@R
if(@X='A') begin
select @i=isnull(max(JO),100000) from BO_JO where JOLEX='A' and BINDID!=@R
end else if(@X='B') begin
select @i=isnull(max(JO),100000) from BO_JO where JOLEX='B' and BINDID!=@R
end else if(@X='D') begin
select @i=isnull(max(JO),100000) from BO_JO where JOLEX='D' and BINDID!=@R
end else begin
return 0000
end
if(@N=0 or @i=100000 or @N=100000)begin
if(@i=100000)
begin
set @N = @i+1
return @N
end else if(LEN(@i)<5)
begin
set @N=100000+@i
return @N
end else begin
set @N =@i+1
return @N
end
end else begin
set @N=@N end
----这个部分有问题帮忙解决下.怎么处理
update BO_JO set JO=@N where BINDID=@R
---
return @N
end ------最佳解决方案-------------------- 自定义函数里面不能update ,存储过程可以。 ------其他解决方案-------------------- 简单的update。没 看出问题 ------其他解决方案-------------------- 在update之前先print出来看看@N、@R这两个参数是否有值,再做具体的分析 ------其他解决方案--------------------