EXEC master..xp_cmdshell 'bcp "select * from dbname..tablename " queryout c:\DT.txt -c -Sservername -Usa -Ppassword'

解决方案 »

  1.   

    导入sql数据库或者文本文件,Access数据库中的数据,  
    不用向导,使用sql语句。  
    举个例子。比如现在有一个文本文件  a.txt  
    要把其中的数据导入到sql  server中一个数据库db1中的table1中,  
    如何处理?  
     bcp "master.dbo.ttttt" in "1234.xls" -c -q -U"sa" -P"343132"
    ---------------------------------------------------------------  
     
    bcp  可以实现数据的导入导出。  
    EXEC  master..xp_cmdshell  'bcp  test.dbo.P_Aspect  in  c:\temp1.txt  -c  -q  -S"servername"  -U"sa"  -P""'  
    //导入    
     
    EXEC  master..xp_cmdshell  'bcp  test.dbo.P_Aspect  out  c:\temp1.txt  -c  -q  -S"servername"  -U"sa"  -P""'  
    //导出  
    ---------------------------------------------------------------  
     txt
    EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout E:\boc\DT.txt -c -Sservername -Usa -Ppassword'
    xls
    EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout E:\boc\DT.xls -c -Sservername -Usa -Ppassword'
    html
    exec sp_makewebtask 'c:\temp.html','select * from pubs..jobs',@lastupdated=0,@resultstitle='r'
    用SELECT  *  FROM  OPENROWSET('MSDASQL.1','Driver={Microsoft  Text  Driver  (*.txt;  *.csv)};Dbq=e:\','select  *  from  a.txt')  导入到sql
      

  2.   

    在查询分析器里:EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    //导入 EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    //导出
      

  3.   

    导出列名EXEC master..xp_cmdshell 'bcp "select a.name 列 from 库名.dbo.syscolumns a,库名.dbo.sysobjects d where a.id=d.id and d.xtype='U' and d.name=''表名''" queryout f:\boc\DT.txt -c -Sservername -Usa -Ppassword'但如果对导出的已有txt文件再用bcp导入数据时,会把原来的列名覆盖调
    所以只能导成新的文件,也就是在bcp导出文件时不能在原有文件上继续追加内容或者这样
    先把字段名和数据导入临时表
    像这样#tmp
    col1   col2
    字段1  字段2
    aa     bb
    cc     dd再用bcp导出