在存储过程中生成一条sql语句 @sql
set @sql ='select a.userID,a.newsType,b.Title into #tempTable from news a inner join newsTable_'+@newsType+' '+'b on a.newsID = b.newsID where a.newsID='+@newsID+' and  a.newsType='+@newsType
在where 后的@newsType 怎么的处理
newsType字段为varchar类型 
现在写的得出的结果如:@newsType='a' 则@sql='.......where a.newsID=1 and a.newsType=a'
这样执行的时候错误的!
怎么样的处理这个问题呀!
大侠请多指教!

解决方案 »

  1.   

    set @sql ='select a.userID,a.newsType,b.Title into #tempTable from news a 
    inner join newsTable_'+@newsType+' '+'b on a.newsID = b.newsID where a.newsID='+@newsID+' and  a.newsType='''+@newsType+''''用两个单引号表示一个单引号
      

  2.   

    set @sql ='select a.userID,a.newsType,b.Title into #tempTable from news a inner join newsTable_'+@newsType+' '+'b on a.newsID = b.newsID where a.newsID='+@newsID+' and  a.newsType='''+@newsType + ''''
      

  3.   

    谢谢两位!
    执行@sql的时候怎么的处理? @sql='................where where a.newsID=1 and a.newsType='a''出错的!
      

  4.   

    set @sql ='select a.userID,a.newsType,b.Title into #tempTable from news a 
    inner join newsTable_'+@newsType+' '+'b on a.newsID = b.newsID where a.newsID='+@newsID+' and  a.newsType='''+@newsType+''''exec(@sql)
      

  5.   

    to:gahade(沙果)
    谢谢指教!