http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.5222284
主  题:  [交流]动态SQL语句 
作  者:  txlicenhe (马可)

解决方案 »

  1.   

    不是动态SQL语句的问题,完全可以执行的。我想知道这个@ss是怎么赋值呀,才能得到结果集例如:如果换成如下就可以得到结果集。declare @ss varchar(800)
    select @ss = '''a'''
    select * from t_1 where name = @ss 那我的问题,怎么解答呀
      

  2.   

    试过,这样可行
    declare @ss varchar(8000)
    set @ss='select * from xxx where name in ('+'''a'''+','+'''b'''+')'
    exec(@ss)
      

  3.   

    create table dd([name] varchar(200))
    insert into dd([name])values('''a''')
    insert into dd([name])values('''b''')
    insert into dd([name])values('b')
    insert into dd([name])values('a')select * from dd
    select * from dd where name in ('a','b') declare @ss varchar(800),
            @sql varchar(800)
    select @ss = '''a'''+','+'''b'''
    set @sql='select * from dd where name in ('+@ss+')'
    exec(@sql) 
      

  4.   

    create table dd([name] varchar(200))
    insert into dd([name])values('''a''')
    insert into dd([name])values('''b''')
    insert into dd([name])values('b')
    insert into dd([name])values('a')declare @sql nvarchar(400),@par nvarchar(100)
    select @sql='select * from dd where name in (@ss1,@ss2)'
    select @par='@ss1 varchar(100),@ss2 varchar(100)'
    execute sp_executesql @sql,@par,'a','b'
      

  5.   

    已测试 try:declare @ss varchar(8000)
    set @ss='select * from T_1 where name in ('+'''a'''+','+'''b'''+')'
    exec(@ss)
      

  6.   

    有变量需要使用动态执行语句!(hglhyy)是正确的!