我也许没有明白你的意思。
你是不是这个意思
declare @s varchar(20)
set @s='bennet'
SELECT a.*  
FROM OPENROWSET('SQLOLEDB','jiangbing';'sa';'',  
  'SELECT * FROM pubs.dbo.authors  ORDER BY au_lname, au_fname') AS a where
au_lname=@s或者
SELECT a.*  
FROM OPENROWSET('SQLOLEDB','jiangbing';'sa';'',  
  'declare @s varchar(20) set @s=''bennet'' SELECT * FROM pubs.dbo.authors where au_lname=@s ORDER BY au_lname, au_fname') AS a

解决方案 »

  1.   

    不可能吧? 只要你的SQL语法不错总是可以的.
    你把出错的代码贴出来吧
      

  2.   

    我是想这样:
    声明
    declare @s varchar(20)
    set @s = 'bennet'或者@s作为存储过程的输入参数然后:
    SELECT a.*  
    FROM OPENROWSET('SQLOLEDB','jiangbing';'sa';'',  
      'SELECT * FROM pubs.dbo.authors where au_lname=@s') AS a变量在内select语句中message: 
    Server: Msg 8180, Level 16, State 1, Line 1
    Statement(s) could not be prepared.
    Server: Msg 137, Level 15, State 1, Line 1
    Must declare the variable '@s'.不管我怎么使用引号 或 字符串相加 都有错误
      

  3.   

    你的问题可以参照下述方法处理,这是我的过程中的一段代码,不会有错误
       Set @SqlExpressStr=
           ' Where B.MSort_KID=31 And Left(B.MCode,3) Like '+"'"+@StuffSort+"'"