declare @letter char(1)
declare @sql varchar(299)set @letter='a'set @sql='select * from syinfo_subzone'
set @sql=@sql+' where sz_letter =cast(@letter as char(1))
exec (@sql)
服务器: 消息 207,级别 16,状态 3,行 1
列名 'a' 无效。

解决方案 »

  1.   

    declare @letter char(1)
    declare @sql varchar(299)set @letter='a'set @sql='select * from syinfo_subzone'
    set @sql=@sql+' where sz_letter = ''' +cast(@letter as char(1)) + ''''
    exec (@sql)
      

  2.   

    --trydeclare @letter char(1)
    declare @sql varchar(299)set @letter='a'set @sql='select * from syinfo_subzone'
    set @sql=@sql+' where sz_letter =cast('+@letter+' as char(1))'
    exec (@sql)
      

  3.   

    --试试
    declare @sql varchar(299)
    set @sql='declare @letter char(1) set @letter=''a'' select * from syinfo_subzone where sz_letter =cast(@letter as char(1))'
    exec (@sql)
      

  4.   

    这样看看:
    declare @letter char(1)
    declare @sql varchar(299)set @letter='a'set @sql='select * from syinfo_subzone'
    set @sql=@sql+' where sz_letter ='+@letter
    exec (@sql)
      

  5.   

    paoluo(一天到晚游泳的鱼)的是正确的,感谢大家