日期:2014-05-17  浏览次数:20504 次

xp_cmdshell 导入导出数据如何操作
我想把数据库中某个表的数据导出到txt文件中,写了如下语句
EXEC master..xp_cmdshell 'BCP "SELECT TOP 12 * FROM  
JJ_T.dbo.detail_temp" queryout c:\currency2.txt -c -U"sa" -
P"as"'
执行后输出如下

output
用法: BCP {dbtable | query} {in | out | queryout | format} 数据文件
  [-m 最大错误数]             [-f 格式化文件]         [-e 错误文件]
  [-F 首行]                   [-L 末行]             [-b 批大小]
  [-n 本机类型]               [-c 字符类型]         [-w 宽字符类型]
  [-N 将非文本保持为本机类型] [-V 文件格式版本]     [-q 带引号的标识符]
  [-C 代码页说明符]           [-t 字段终止符]       [-r 行终止符]
  [-i 输入文件]               [-o 输出文件]         [-a 数据包大小]
  [-S 服务器名称]             [-U 用户名]           [-P 密码]
  [-T 可信连接]               [-v 版本]             [-R 允许使用区域设置]
  [-k 保留空值]               [-E 保留标识值]
  [-h"加载提示"]              [-x 生成 xml 格式化文件]
NULL

也没有生成文件,不知道错在什么地方,请教了

------解决方案--------------------
   
/******* 导出到excel  
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' 
  
/*********** 导入Excel  
SELECT *  
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',  
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions  
  
/*动态文件名  
declare @fn varchar(20),@s varchar(1000)  
set @fn = 'c:\test.xls' 
set @s ='''Microsoft.Jet.OLEDB.4.0'',  
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0''' 
set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$' 
exec(@s)  
*/  
  
SELECT cast(cast(科目编号 as numeric(10,2)) as