set @sql=@sql + ' and fscodify=' + '''@id''' 
改成set @sql=@sql + ' and fscodify=' + @id

解决方案 »

  1.   

    @id 是个字符串变量
    对数字还行得通,但如果是英文中文呢
    where 后面加字符是要加分号的
      

  2.   

    set @sql=@sql + ' and fscodify=' @id + '''''''' 是4个单引号
      

  3.   

    想到了
    declare @sql varchar(300),@id varchar(300),@Language varchar(300)set @id='1'set @sql='select * from T_Language where 1=1'
    if  len(@ID)!='' 
         set @sql=@sql + ' and fscodify=' + '''' + @id + ''''
     
    if len(@Language)!='' 
         set @sql=@sql + ' and fsName='  + '''' + @Language + ''''
    select @sql
    exec  (@Sql)
      

  4.   

    上面的不对
    set @sql=@sql + ' and fscodify=''' @id + '''''''  是3个单引号
    '''' 是4个单引号
      

  5.   

    晕上面的,请问:'''  是3个单引号
    '''' 是4个单引号都是什么意思呀?
    加个单引号/4个单引号 sql 语句不就不能执行了吗?