try:
EXEC master..xp_cmdshell 'bcp sz_data.dbo.trlog out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'

解决方案 »

  1.   

    不行的,我用的是:master..xp_cmdshell 'bcp sz_data.dbo.trlog out c:\belly\a1.txt -S ecs\sz_data -c -U"sa" -P""'ecs是服务器的名字,所在sz_data是实例名返回的错误是SQLState = 08001, NativeError = 17
    Error = [Microsoft][ODBC SQL Server Driver][DBMSLPCN]SQL Server 不存在或访问被拒绝
    SQLState = 01000, NativeError = 67
    Warning = [Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionOpen (Connect()).
    NULL
      

  2.   

    master..xp_cmdshell 'bcp sz_data.dbo.trlog out c:\belly\a1.txt -S ecs -c -U"sa" -P""'
      

  3.   

    master..xp_cmdshell 'bcp sz_data.dbo.trlog out c:\belly\a1.txt -Secs -c -Usa -P'
      

  4.   

    不行的,返回的错误和第一次是一样的:
    SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]无法打开 BCP 主数据文件
      

  5.   

    那有可能是找不到bcp.exe这个文件。
    在MS-DOS模式下输入:
    c:>path
    看看path中间有没有把MSSQL的binn目录加进去。
    如果没有,那幺就要写全了(假设你是SQL Server7.0,而且装在d盘):
    exec master..xp_cmdshell 'd:\mssql7\binn\bcp.exe sz_data.dbo.trlog out c:\belly\a1.txt -Secs -c -Usa -P'
      

  6.   

    你再命令符状态下试试看:BCP 回车。
    应该显示BCP的参数信息,如果没有就如楼上的方法,到\mssql\binn\目录下运行。
    从微软的解释来看
    “在 bcp_init 调用中指定的文件名不存在,或已由另一个应用程序打开。”
    你TRY BELOW:
    exec master..xp_cmdshell 'bcp sz_data.dbo.trlog out c:\a1.txt -Secs -c -Usa -P'
      

  7.   

    哈哈,问题我自己解决了已经,需要在server端创建一个odbc连接,servername用odbc的连接名即可,挺怪异,为什么会这样?
      

  8.   

    因为BCP是通过ODBC调用SQLSRV32.DLL