declare @vchProviderStringTemp varchar(8000)

解决方案 »

  1.   

    select * into Student1 from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0',@vchProviderString,sheet1$)openrowset里面的参数不支持用变量
      

  2.   

    你的變量定義不夠長.........
    declare @vchProviderStringTemp varchar(8000)
    declare @nTemp int
    declare @vchProviderString varchar(8000)
    ..........
      

  3.   

    谢谢davorsuker39(大狐狸) :我该过了,还报同样的错误
      

  4.   

    --改成这样就行了.exec('
    select * into Student1 from 
    OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'','''+@vchProviderString+''',sheet1$)
    ')
      

  5.   

    对  openrowset里面的参数不支持用变量
      

  6.   

    谢谢zjcxc(邹建) ,我试了还是不成功服务器: 消息 137,级别 15,状态 2,行 6
    必须声明变量 '@vchProviderString'。
      

  7.   

    openrowset里面的参数不支持用变量,难道就没有别的办法了,有没有别的办法到入exce文件到数据库中?请高手出手
      

  8.   

    --GO不是sql语句,所以不能写在存储过程中间CREATE proc dbo.SP_ImportS
    @vchFilePath  varchar(255)
    AS
    set nocount on
    declare @vchProviderStringTemp varchar(255)
    declare @nTemp int
    declare @vchProviderString varchar(255)
    select @vchProviderStringTemp = 'Excel 5.0;HDR=YES;DATABASE= '--select @nTemp = LEN(@vchProviderStringTemp)
    --select @vchProviderString = stuff(@vchProviderStringTemp,@nTemp-1,1,@vchFilePath)
    select @vchProviderString = @vchProviderStringTemp+@vchFilePath
    drop table student1
    exec('
    select * into Student1 from 
    OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'','''+@vchProviderString+''',sheet1$)
    ')
    GO
      

  9.   

    SQL 2000查询分析器
    --左连的对象浏览器(没有的话按F8)
    --对象项中
    --右键调试的存储过程
    --调试
    --输入参数(必须输入所有的参数,包括默认值/输出参数
    --点击执行
    --出现一个浮动工具条
    --上面有单步执行,断点设置等按F11是单步执行.如果要运行到指定行,只需要将光标移动到指定的行,再按Ctrl+F10