@sql=N'select  @a=Phone  from House where Phone=''13902273189'''  
这样@a 也是没有值 。

解决方案 »

  1.   

    declare @a varchar(20),@sql varchar(200)
    SET @a='[phone]'
    SET @sql=N'select'+ @a+'from House where Phone=''13902273189'''
    exec(@sql)
    select @a
      

  2.   

    declare @a varchar(20),@sql nvarchar(200)
     set  @sql=N'select  @a  ='+' name from sysobjects where id = 2007678200'
    EXECUTE sp_executesql @sql , N'@a varchar(20) OUTPUT' , @a = @a OUTPUT
    PRINT @a /*结果
    sp_DTA_wkld_analysis
    */
      

  3.   


    declare @a varchar(20),@sql Nvarchar(200)
     set  @sql=N'select @a =Phone from House where Phone=''13902273189'''
    exec sp_executesql @sql,N'@a varchar(30) output ',@a output
    select @a