马可的SQL语句导入导出大全:
http://www.csdn.net/Develop/read_article.asp?id=2267

解决方案 »

  1.   

    补充一句,dbf文件为dBase IV文件
      

  2.   

    要求.dbf/.xls文件在sql服务器上,否则要用共享目录的方式.
      

  3.   

    --我写两个简单的,用参数处理的示例--因为涉及到具体的表结构,所以还要要根据具体情况来调整--导入Excel文件的处理
    create proc p_excel
    @filename nvarchar(1000), --要导入的excel文件名
    @sheetname sysname, --要导入的excel文件的工作表名
    @tbname sysname --导入到那个表中
    as
    declare @s varchar(8000)
    set @s='insert ['+@tbname+']
    select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''
    ,''Excel 8.0;IMEX=1;HDR=YES;DATABASE='+@filename+'''
    ,['+@sheetname+'$])'
    exec(@s)
    go--调用
    exec p_excel 'c:\a.xls','sheet1','a'
    go
      

  4.   


    --导入dBase III文件的处理
    create proc p_dBase3
    @filename nvarchar(1000), --要导入的dBase文件名
    @tbname sysname --导入到那个表中
    as
    declare @s varchar(8000),@i int
    set @i=len(@filename)-charindex('\',reverse(@filename))+1
    set @s='insert ['+@tbname+']
    select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''
    ,''dBase III;DATABASE='+left(@filename,@i)+'''
    ,''select * from ['+stuff(@filename,1,@i,'')+']'')'
    print(@s)
    go--调用
    exec p_dBase3 'c:\a.dbf','a'
    go
      

  5.   

    异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。
      

  6.   

    老大,你真强!如果我想在存储过程中判断文件是dbf还是xls,在决定调用哪一个过程该怎么办呢?就是说
    if 文件为dbf then exec p_dBase3 'c:\a.dbf','a'
    if 文件为xls then exec p_excel 'c:\a.xls','sheet1','a'但我不知道该如何实现?
      

  7.   

    另外,我想知道如何在存储过程中输出一个字符串比如:delete后我想输出一个字符串,说明“已删除记录**条”邹建大哥,指导一下小弟
      

  8.   

    上面关于判断文件是dbf还是xls的问题我已经解决了,真是不好意思
    但是我依然不知道要怎样在存储过程中输出一个字符串,以便于前台的接收显示。各位帮帮我
      

  9.   

    要在前台可以接收的话一种是用 select 返回记录集的形式,前台用recordset对象接收
    一种是用 raiserror 返回错误,前台用错误处理来接收.
      

  10.   

    能举个例子吗?
    比如:delete后我想输出一个字符串,说明“已删除记录**条”
      

  11.   

    create proc p_test
    as
    set nocount on
    delete ....
    select re='已经删除记录'+cast(@@rowcount as varchar)+'条'
      

  12.   

    create proc p_test1
    as
    delete from ...
    raiserror('已经删除记录%d条',1,16,@@rowcount)
      

  13.   

    最后一个问题,大哥,是不是很烦了?我要如何判断一个字段内的数据是否能从varchar转换为money谢谢谢谢,有劳有劳
      

  14.   

    --示例select cast(a as money)
    from(
    select a='a'
    union all select '1'
    union all select '1.0'
    union all select '#1'
    union all select '$1'
    union all select '$12,1'
    union all select '12,1'
    union all select '12,1%'
    union all select '&12,1'
    union all select '@12,1'
    )a where isnumeric(a)=1
      

  15.   

    isnumeric(字段)=1 的,都可以转换成money,溢出的不考虑.