1. sql语句均在sql服务器上执行,因此第1个问题无法用sql语句解决,除非将文件放在sql服务器能访问的共享目录中.

解决方案 »

  1.   

    2. 用存储过程实现的话,参考下面的
    create proc p_test
    @fielname nvarchar(1000)
    as
    exec('
    insert into e_pro(proid,model)
     select 产品ID,型号 from 
    OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''  ,''Excel 5.0;HDR=YES;DATABASE='+@filename+''',sheet1$) ')
      

  2.   

    3. 
    --得到服务器指定目录下的目录及文件更表
    exec master..xp_dirtree @path='c:\',@depth=1,@file=1 --参数:目录名,目录深度,是否显示文件
    dbcc checkprimaryfile (N'C:\test\MRP_DATA.MDF', 3)
      

  3.   

    zjcxc(邹建) 大哥
    问题2,
    我按你的提示 建了存储过程,在查询分析器里执行,出现错误码提示
    “异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。 ”
    我在sql企业管理器里,选中要插入的目的数据库,属性》选项里,有一项“ANSI_NULLS默认设置”(没找到另一项),我勾上。在查询分析器里执行存储过程,还是同样的提示。
    这是为什么?我该在哪里设置?
      

  4.   

    1. @开始的是变量
    2. 删除存储过程,在查询分析器中创建.
    3. 不行的话,删除存储过程,执行下面的语句创建:
      
    SET ANSI_NULLS ON
    GO
    create proc p_test
    @fielname nvarchar(1000)
    as
    SET ANSI_WARNINGS ON
    exec('
    insert into e_pro(proid,model)
     select 产品ID,型号 from 
    OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''  ,''Excel 5.0;HDR=YES;DATABASE='+@filename+''',sheet1$) ')