我想把EXCEL里的数据导入到SQL,用了以下语句
insert into @TempTable1
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=E:\myexcel.xls ',sheet1$)是可以成功的,但是我想把"E:\myexcel.xls "换成一个参数,我该怎么做呢?
写成:
TempTable1 nvarchar(50) --传进的参数insert into @TempTable1
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE='+@TempDataPath,sheet1$)
提示"第35行: '+' 附近有语法错误。"
第35行是
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE='+@TempDataPath,sheet1$)谁能帮我看看,不是标点符号的全角半角问题

解决方案 »

  1.   

    这样试试可以吗?
    insert into @TempTable1
    select * from
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE='+@TempDataPath+''',sheet1$)
      

  2.   

    --这样就OK了.declare @v_File varchar(100)
    set @v_File='c:\Test.xls'
    exec('select * into ##t from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES;DATABASE='+@v_File+''',sheet1$)')
    select * from ##t--不能使用表变量,因为表变量的不能作用在exec里边.所以应该使用全局的临时表##t
      

  3.   

    mschen(Co-ok)
    能不能使用#t临时表?因为会有很多人一起导入数据库
      

  4.   

    mschen(Co-ok),诸位
    最好是能导入到表变量(@TempTable),因为我要判断某些字段要符合一些规则才能,导入到物理表里