try---------declare @spbh varchar(20)
set @spbh = 'DAL100X%'
select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like ''+rtrim(@spbh)+''')

解决方案 »

  1.   

    try
    declare @spbh varchar(20)
    set @spbh = 'DAL100X%'
    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''+@spbh+'''')
      

  2.   

    你like那裡的單引號給的有問題,參數沒有給進去,試試上面這個。
      

  3.   

    declare @spbh varchar(20)
    set @spbh = 'DAL100X%'
    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''+rtrim(@spbh)+'''')
      

  4.   

    是不是sqlserver不支持 openquery 里面有变量呀
      

  5.   

    try
    declare @spbh varchar(20)
    set @spbh = 'DAL100X%'
    EXEC('select * from openquery(zhangqingsong,''select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''''+@spbh+''''''')')
      

  6.   

    declare @spbh varchar(20)
    set @spbh = 'DAL100X%'
    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''+rtrim(@spbh)+'''')
    这条语句执行报错呀
      

  7.   

    你執行這個語句看看,可能會明白一些declare @spbh varchar(20), @S Varchar(8000)
    set @spbh = 'DAL100X%'
    Select @S = 'select * from openquery(zhangqingsong,''select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''''+@spbh+''''''')'
    Select @S
      

  8.   

    declare @spbh varchar(20),@spmch varchar(20)
            
    set @spbh = 'DAL100X%'
    set @spmch = 'AJX%'
    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''+@spbh+''' and a.spmch like '''+@spmch+'''')
      

  9.   

    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like ''DAL100X%''')EXEC中最後執行的語句就是上面這條拼結動態語句的時候,1個單引號用兩個代替DAL100X前面有2個單引號,後面有3個單引號,那麼組合的時候就是2*2 + 1(外部的一個) = 5 , 2 * 3 + 1(外部對應的一個) = 7,所以就有5,7個單引號
      

  10.   

    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like ''DAL100X%''')''DAL100X%''用两个单引号的目的是什么?
      

  11.   

    declare @spbh varchar(20),@spmch varchar(20)
            
    set @spbh = 'DAL100X%'
    set @spmch = 'AJX%'
    EXEC('select * from openquery(zhangqingsong,''select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like '''''+@spbh+'''''  and a.spmch like ''''' + @spmch + ''''''')')
      

  12.   

    select * from openquery(zhangqingsong,'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like ''DAL100X%''')''DAL100X%''用两个单引号的目的是什么?
    ------------
    實際也是兩個單引號代替一個單引號。'select a.spbh,a.spmch,a.jlgg,a.dw,a.shpgg,a.shpchd,b.sl_kc from spkfk a,kc_spzkc b where a.spid = b.spid and a.spbh like ''DAL100X%'''這一段代碼也是在拼結語句