declare @sql_select  as varchar(10)Set @sql_select = 'select  top 1 ' + @smmnum_p + '=smm_num from sms_201001 order by smm_num desc'
exec (@sql_select)select @smmnum_p上述运行后,结果为null但如果我直接检索,能得出 @smmnum_p 该值结果
select  top 1 @smmnum_p=smm_num from sms_201001 order by smm_num descselect @smmnum_p请问这是怎么回事呢,其实我想通过上面检索出最近一次的近录,如果有数据我再做条件里面的内容,如:if @smmnum_p is null
 ..
else
 ...
end 请教各位了,谢谢!

解决方案 »

  1.   

    declare @sql_select  as varchar(10)你定义的长度只有10
      

  2.   


    不好意思,笔误了,不过,我程序中写的是 2000,检索出来的结果 是null
      

  3.   


    declare @sql_select  as varchar(10)Set @sql_select = 'select  top 1 ' + @smmnum_p + '=smm_num from sms_201001 order by smm_num desc'print  @sql_select 
    您先PRINT  @sql_select  出来看看啊 
      

  4.   

    @sql_select  检索出来结果 是null阿,??
      

  5.   

    @smmnum_p 初始值为null +任何字符串还是为null
      

  6.   

    @smmnum_p  在前面也是有定义的 
    declare @smmnum_p as char(28)我是需要将最近一次的smm_num检索出来,传给 @smmnum_p 变量
      

  7.   

    直接运行检索是有内容 的select  top 1 @smmnum_p=smm_num from sms_201001 order by smm_num descselect @smmnum_p
    result: S2010011800071001