在存储过程中用 exec @string_variable 就可以了,其中 @string_variable 是你传入的内容拼成的语句 select * from atable where fieldname='asdfasdf'。

解决方案 »

  1.   

    例:declare @sql varchar(2000)
    set @sql='select * from tdictuser where userid=''1001'''
    exec(@sql)注意:where userid=''1001''是两个单撇号
      

  2.   

    declare @sql varchar(1000),@expression varchar(100)
    set @expression='where fieldname=''asdfasdf'''
    set @sql='select * from atable' + @expression
    exec(@sql)
      

  3.   

    那么在游标中能实现吗??
    以下代码中第三行的条件怎样根据传入参数的不同而改变呢???declare @Fieldvalue varchar(20),@WhereCase Nvarchar(500)declare CountCur scroll cursor
    for  select Field from ATable
    open CountCur
    fetch next from CountCur into @FieldvalueWHILE @@FETCH_STATUS=0 
    BEGIN
            print @Fieldvalue
            fetch next from CountCur into @Fieldvalue
    END
    close CountCur
    deallocate CountCur
      

  4.   

    首先,建议不要用游标
    其次,建议不要用exec @string_variable ,这个需要额外的的校验,不然不保险。至于你的问题,可以这样做
    建一个临时表,
    把你传入的内容拼成的语句 select * from atable where fieldname='asdfasdf' 的结果保存到临时表,
    再创建游标,是针对临时表的全部记录了,不需要外面传入的条件了。