最起码的case 语句结构都有问题 declare @no int 
select 
case when [no_no] is null then  @no=1 
 else   [no_no]  is not null then  @no=[no_no]+1 end 
from bucc_contractno 

解决方案 »

  1.   


    declare @no int 
    select 
    case when [no_no] is null then  @no=1 
    else  @no=[no_no]+1 end 
    from bucc_contractno 
    print @no 
    insert into bucc_contractno 
    values(year(getdate()),month(getdate()),@no)
      

  2.   

    declare @no int 
    select 
    case when [no_no] is null then  @no=1 
    else  @no=[no_no]+1 end 
    from bucc_contractno 
    print @no 
    insert into bucc_contractno 
    values(year(getdate()),month(getdate()),@no)
      

  3.   

    declare @no int 
    select 
    case when [no_no] is null then  @no=1 
    else  @no=[no_no]+1 end 
    from bucc_contractno 
    print @no 
    insert into bucc_contractno 
    values(year(getdate()),month(getdate()),@no)消息 102,级别 15,状态 1,第 3 行
    '=' 附近有语法错误。
      

  4.   

     then 后面不能接表达式修改下:declare @no int 
    select @no=
    (
    case when [no_no] is null then  1 
    when [no_no]  is not null then [no_no]+1 end ) 
    from bucc_contractno 
    print @no insert into bucc_contractno 
    values(year(getdate()),month(getdate()),@no)
      

  5.   

    case when... when...end
    这样写也可以的啊。可以看SQL的帮助的
      

  6.   


    declare @no int 
    select @no=case when [no_no] is null then  1 else  [no_no]+1 end from bucc_contractno 
    print @no 
    insert into bucc_contractno 
    values(year(getdate()),month(getdate()),@no)或者
    declare @no int 
    select @no=isnull([no_no],0)+1  from bucc_contractno 
    print @no 
    insert into bucc_contractno 
    values(year(getdate()),month(getdate()),@no)或者
    select @no=isnull([no_no]+1,1)  from bucc_contractno