其实应该归于exec语句的疑问
exec('select * from T_user where gender='+'男'+' order by id desc')
或者
exec('select * from T_user where gender=男 order by id desc')
都是提示:
服务器: 消息 207,级别 16,状态 3,行 1
列名 '男' 无效。

如何修改?

解决方案 »

  1.   

    where '+@condition_name+'=''+@condition_value+'' order by '+@order_name+' desc'
      

  2.   

    set @condition_value='男' 改为:
    set @condition_value='''男'''
    或者
    把过程中的
    where '+@condition_name+'='+@condition_value+' order by '+@order_name+' asc'改为
    where '+@condition_name+'='''+@condition_value+''' order by '+@order_name+' asc')
      

  3.   

    对于中文,使用nvarchar即可!@condition_value varchar(20)是不正确的。