这是BCP的规定用法
--导出
EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out c:\table1.xls -c -q -S 实例名 -U 用户名 -P 口令
--导入
EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 in c:\table1.xls -c -q -S 实例名 -U 用户名 -P 口令

解决方案 »

  1.   

    注意字符间的间隔.
    DECLARE @FileName varchar(30), @bcpCommand varchar(2000)
    SET @FileName = 'F:\temp1.txt'
    SET @bcpCommand = 'bcp  "SELECT ID,Name FROM MyTable" queryout '
    SET @bcpCommand = @bcpCommand + @FileName + ' -c -q -S "my_Svrl" -U "sa" -P ""'
    --select @bcpCommand
    EXEC master..xp_cmdshell @bcpCommand
      

  2.   

    To:  cysh(cysh) :
    问题是将 
    SET @bcpCommand = 'bcp Mydatabase "SELECT  ID ,Name  FROM MyTable" queryout'
    改为
    SET @bcpCommand = 'bcp Mydatabase.dbo.MyTable out'
    则正常执行,可见与空格无关。
      

  3.   


    SET @bcpCommand = 'bcp Mydatabase "SELECT  ID ,Name  FROM MyTable" queryout'
    改成
    SET @bcpCommand = 'bcp "SELECT  ID ,Name  FROM Mydatabase..MyTable" queryout'