@strsql='select * from ('+@strall+') as tmpTable where '+@ConditionName+'='''+@ConditionValue+'''' 
其中@ConditionValue这个参数是varchar类型的,这个语句试了半天才试出来,但是不明白为什么在拼接的时候@ConditionValue两边为什么有四个单引号,高手帮忙解释一下
=========================================================='='''+@ConditionValue+'''' 
第一个和最后一个单引号:内容是字符串.
第二第三个:为了在输出一个单引号.(有点象C中的"\\",转义字符)

解决方案 »

  1.   

    你自己运行,调试下啊。
    两个单引号等于在这个字符串连接中的一个单引号select * from name='a'
    等于
    @sql='select * from name =''' + @name + ''''
      

  2.   

    你那个ConditionName字段在数据库中是是varchar类型所以在两边都要加一个’,在数据库中字符串的两个单引号会解析成一个单引号就是这个原理,所以@strall、@ConditionName、@ConditionValue这些变量都不能出现单个'如果有就会出错 你可以试试执行一下print ''''看看