select *FROM openrowset( 'Microsoft.Jet.OLEDB.4.0',
'EXCEL 8.0;HDR=YES;IMEX=1; DATABASE=D:\a.xls',Sheet1$)
--注意生成格式

解决方案 »

  1.   


    先print出来看看,可以执行不调试print后的执行代码
      

  2.   

    可是我要求的就是有动态的sql
      

  3.   

    print后是
    SELECT * FROM OPENDATASOURCE("Microsoft.Jet.OLEDB.4.0"; 
    "Data Source=D:\\up\\rxk.xls;User   ID=Admin;Password=;Extended  Properties=Excel 8.0")...abc$
    没错啊
     
      

  4.   

    'select *FROM openrowset( ''Microsoft.Jet.OLEDB.4.0'',''EXCEL 8.0;HDR=YES;IMEX=1; DATABASE='+@NetPathFile+''',Sheet1$)a'
      

  5.   

    set  @NetPathFile = 'D:\\up\\rxk.xls' 
    -->
    set  @NetPathFile = 'D:\up\rxk.xls' 
      

  6.   

    declare  @sql  varchar(1000),@NetPathFile  varchar(100) 
    set  @NetPathFile = 'D:\up\rxk.xls' 
    set  @sql =  '"Microsoft.Jet.OLEDB.4.0"; 
    Data Source="'+  @NetPathFile  +'";User  ID=Admin;Password=;Extended  Properties=Excel 8.0"' 
    set @sql='SELECT * FROM OPENDATASOURCE('+@sql+')...[abc$] ' 
    exec(@sql)
      

  7.   

    這符串的格式引號..
    declare  @sql  varchar(1000),@NetPathFile  varchar(100)
    set  @NetPathFile = 'D:\\up\\rxk.xls'
    set  @sql =  'select *FROM openrowset( ''Microsoft.Jet.OLEDB.4.0'',''EXCEL 8.0;HDR=YES;IMEX=1; DATABASE='+@NetPathFile+''',abc$)a'
    print @sql
    exec(@sql)
      

  8.   


    declare  @sql  varchar(1000),@NetPathFile  varchar(100) 
    set  @NetPathFile = 'D:\up\rxk.xls' 
    set  @sql =  '''Microsoft.Jet.OLEDB.4.0''; 
    ''Data Source="'+  @NetPathFile  +'";User  ID=Admin;Password=;Extended  Properties=Excel 8.0''' 
    set @sql='SELECT * FROM OPENDATASOURCE('+@sql+')...[abc$] ' 
    exec(@sql)
      

  9.   

    roy_88 谢谢
    可以了
    客我不明白为什么
      

  10.   

    roy_88
    还有就是我用的是opendatasource,你教的是openrowset
    这两格没什么冲突啊