declare @ids nvarchar(50) 
set @ids = '1,2'
exec('select * from table1 where id in ('+@sqlids+')')

解决方案 »

  1.   

    declare @ids nvarchar(50) 
    set @ids = '1,2'
    exec('select * from table1 where id in ('+@ids+')')
      

  2.   

    declare @ids nvarchar(50) set @ids = '1,2'
    exec sp_executesql N'select * from table1 where id in ('+@ids+')'
      

  3.   

    呵呵,这个有意思declare @ids nvarchar(50) set @ids = '65, 1235'
    exec sp_executesql N'exec(''select * from fileiteration where fileiterationid in ('' + @sqlids + '')'')',
    N'@sqlids nvarchar(50)',
    @sqlids = @ids
      

  4.   

    谢谢tx1icenhe(冒牌马可 V0.3),你的第二种方法可以使用,第一种报错。
    也谢谢libin_ftsafe(子陌红尘:当libin告别ftsafe) 但是,是否可以仅使用sp_executesql 而不用到 exec 的方法?求教社区的各位了,多谢!
      

  5.   

    有点钻牛角尖了吧declare @ids nvarchar(50) set @ids = '65, 1235'
    exec sp_executesql N'declare @t nvarchar(2000) set @t=N''select * from fileiteration where fileiterationid in ('' + @sqlids + '')'' exec sp_executesql @t',
    N'@sqlids nvarchar(50)',
    @sqlids = @ids
      

  6.   

    declare @ids nvarchar(50) 
    set @ids = '1,2'
    exec sp_executesql N'select * from table1 where id in ('+@sqlids+')'
      

  7.   

    libin_ftsafe(子陌红尘:当libin告别ftsafe) ( ) 信誉:105    Blog  2006-09-11 10:41:00  得分: 0  
     
     
       declare @ids nvarchar(50) 
    set @ids = '1,2'
    exec sp_executesql N'select * from table1 where id in ('+@sqlids+')'---------------------------------------
    和我的前面的一样,sp_executesql只接受变量,不能+运算