declare @cmd varchar(200)
set @cmd='bcp "select top 10 * from Northwind..Orders" queryout "c:\orders.txt" -c -t "," -T' 
exec master..xp_cmdshell @cmd

解决方案 »

  1.   


    ---  把 YTHR 中的Employee 表的数据导出到D:\Orders.xls, 导出以后会覆盖原有文件的内容
    exec master..xp_cmdshell 
          'bcp "YTHR.Dbo.Employee" out "D:\Orders.xls" -c -q -U"sa" -P""'      
      

  2.   

    楼上的两位大哥,我对存储过程不熟啊,你们写的我不是很明白。假设我的数据库名称dgvbc,表名是temp1,那么上面的语句应该怎么改呢?
      

  3.   

    而且我是将两条sql语句的查询结果一起输出到文本文件中,这两个sql语句是连在一起写,还是分开写?
    我刚刚接触sql server,见笑了/
      

  4.   

    建议到用户手册里查一下bcp命令的说明.
      

  5.   

    能否具体解释一下 master..xp_cmdshell 是什么意思?是固定写法吗?
      

  6.   

    declare @cmd varchar(200)
    set @cmd='bcp "select top 10 * from dgvbc..temp1" queryout "c:\temp.txt" -c -t "," -T' 
    exec master..xp_cmdshell @cmd
    我刚刚试了上面的语句.输出的提示是
    NULL
    开始复制...
    NULL
    已复制了 10 行。
    数据包的大小(字节): 4096
    时钟时间(毫秒): 共      1
    NULL
    但是在c盘下没有temp.txt文件产生阿?我又自己建了一个temp文件,运行后没有字符写入.大家看看是哪里的问题?
    另外我想问的是我要同时将两条语句产生的结果输入到同一个文本文件中,那么应该怎么写?第二条语句会不会覆盖掉第一条语句产生的结果/