EXEC master..xp_cmdshell 'bcp Northwind.dbo.Region out e:excel\excel1.xls -c -q -S"服务器名" -U"sa" -P"yjdn"'
--像这样用master..xp_cmdshell来调用不行么?

解决方案 »

  1.   

    EXEC master..xp_cmdshell ''就是提供命令行运行的功能的,你查一下是否命令写错?
      

  2.   

    这是我的源码:
    CREATE PROCEDURE [dbo].[My_proc]  ASExec Master..xp_cmdshell 'bcp TestDB.dbo.Table1 in "f:\file\temp.txt" -c -S"server1" -U"sa" -P"sa"'PRINT 'OK'
    GO
      

  3.   

    EXEC master..xp_cmdshell 'bcp Northwind.dbo.Region out c:\test.txt -c -q -S"server1" -U"sa" -P"sa"'
    --你先执行上面的语句看看--你的服务器名是server1?还有密码是sa?
      

  4.   

    EXEC master..xp_cmdshell 这个就可以了!
    可能是格式有问题!大小写也是有关的哦!
      

  5.   

    out也不好使。给出的错误是不认识bcp命令。但是这个命令再dos下运行好使。在sp中运行dir等命令好用,但是就这个不好用!
      

  6.   

    --参考这个:if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    go/*--实现数据导入/导出的存储过程 可以实现导入/导出 指定表 到文本文件
    支持自定义行/列分隔符--邹建 2003.07(引用请保留此信息)--*//*--调用示例导出调用示例
    --导出指定表,这里指定导出表:地区资料
    exec file2table 'zj','','','c:\zj.txt','xzkh_new..地区资料',@rowsplit=','导入调用示例
    --导入指定表,这里指定导入表:地区资料
    exec file2table 'zj','','','c:\zj.txt','xzkh_sa..地区资料',0--*/create procedure File2Table
    @servername varchar(200) --服务器名
    ,@username varchar(200) --用户名,如果用NT验证方式,则为空''
    ,@password varchar(200) --密码
    ,@filename varchar(1000) --目录名+文件名
    ,@tbname varchar(500)='' --数据库..表名
    ,@isout bit=1 --1为导出(默认),0为导入
    ,@fdsplit varchar(10)='\t' --字段分隔符,默认为制表符
    ,@rowsplit varchar(10)='\n' --记录分隔符,默认为回车符
    as
    declare @sql varchar(8000)set @sql='bcp "'+@tbname
    +case when @isout=1 then '" out' else '" in' end
    +' "'+@filename+'" /c' +' /S"'+@servername
    +case when isnull(@username,'')='' then '' 
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')+'"'
    +' /t"'+@fdsplit+'"'
    +' /r"'+@rowsplit+'"'exec master..xp_cmdshell @sql
    go
      

  7.   

    找到问题了,我把bcp.exe的路径指定就能用了,我把他考出来了,路径太深,呵呵,奇怪
    Exec Master..xp_cmdshell 'C:\bcp.exe TestDB.dbo.Table1 in "f:\file\temp.txt" -c -S"server1" -U"sa" -P"sa"'