如:
  declare @where varchar(1000)
  set @where='FieldA=1 and Field2=2'
  
  select * from tb where + @where不能运行,提示有错误,除了使用exec,有其它方式实现吗?

解决方案 »

  1.   

    declare @where varchar(1000)
      set @where='FieldA=1 and Field2=2'
       
      exec('select * from tb where '+ @where)
      

  2.   

    补充:
    declare @b bit, @where varchar(1000)
    if @b=0 
      set @where='FieldA=1 and Field2=2'
    else
      set @where='FieldA=2 and Field2=1'  
      select * from tb where + @where 
      

  3.   


    不用exec, 因为脚本里还有其它变量,这样的话这些变量都得转换成字符串,太麻烦。