sql2005 如果将查询结果导出为excel 要求是如果利用命令行 将select * from tc_contact a inner join tc_account b on a.account_id = b.account_id结果 直接生成一个xlsx文件(excel2007)。这个查询有大概七万条记录,四十多列。好苦恼。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 EXCEL 只能支持到65535 行 我知道是BCP,找了好多个命令,都有错误的。大家都是互相抄来抄去的。有没有人帮忙写一个呢。太感谢了。 能不能用VBA开发?分开sheet存储数据吧。 excel 2007 可以支持一百万行记录。所以我想将查询结果存入 xlsx这种格式的。 EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BYau_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword' EXEC master..xp_cmdshell 'bcp "SELECT * FROM mytest.dbo.TESTAB " queryout e:\test21.xls -c -S"zhaowenzhong" -U"sa" -P"123456" ' 方法1.新建一个2007Excel文档,然后点菜单 数据,外部数据载入,数据载入,慢慢一步一步点下去。方法2.点数据库,有键,任务,数据输出,来源选数据库,目标选Excel文档, 然后用select 语句就行。 这个方法倒是值得参考,问题是我要用命令合并数据库中的两个表,然后导出到excel2007 ,这个要怎么做,你的方法不支持先select 数据,再导出,而是直接导出了。 /*将SQL SERVER中查询到的数据导成一个Excel文件*/T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P"password"'参数:S 是SQL服务器名;U是用户;P是密码实例EXEC master..xp_cmdshell 'bcp his.dbo.tb_test out d:test.xls -c -q -S"DATABASE" -U"sa" -P"password"'/*支持select数据再导出*/exec master..xp_cmdshell 'bcp " select * from his..t_emp where leave_flag=''N'' " queryout d:\emp.xls -c -U "sa" -P "password"' --将数据库his中 表t_emp导出到d:\emp.xls ,即是导出成电子表格文件 exec master..xp_cmdshell 'bcp " select * from gposdb.dbo.CT_FuelingData a inner join gposdb.dbo.CT_InhouseCard b on a.VC_FD_Cardno = b.VC_IC_CardNO " queryout d:\emp.xls -c -U "sa" -P "test"' LZ你看一下这个exec master..xp_cmdshell 'bcp " select * from [youdbname].[dbo].tc_contact a inner join [youdbname].[dbo].tc_account b on a.account_id = b.account_id " queryout d:\emp.xls -c -U "sa" -P "密码"' LZ你看一下这个exec master..xp_cmdshell 'bcp " select * from [youdbname].[dbo].tc_contact a inner join [youdbname].[dbo].tc_account b on a.account_id = b.account_id " queryout d:\emp.xls -c -U "sa" -P "密码"' 用法: 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 再说明一下,我的记录超过65536条,所以用xls的格式不行,请问有什么别的方法,莫抄他人助我,谢谢。 关于一个查询的排序问题 我是新手,遇到个简单的语句问题,哪位大哥帮解决一下啊 急,在线等小问题 两道小题儿 在别的论坛看到的 鸟哥初问(+100):直接执行语句可以,放到存储过程中不行,为什么? 存储过程的性能会比批处理的T-SQL语句差吗? 关于数据库中存储过程的使用,急待答案! server6.5中怎样备份一个数据库? sql server 2000 中 把getdate() 的格式转换成 yyyy-mm-dd??? 请问,如何在ACESS写SQL插入时间???? SqlServer的备份文件和备份设备有什么区别? 急急急,这到底是物理模型,还是逻辑模型
分开sheet存储数据吧。
方法2.点数据库,有键,任务,数据输出,来源选数据库,目标选Excel文档, 然后用select 语句就行。
/*将SQL SERVER中查询到的数据导成一个Excel文件*/
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P"password"'
参数:S 是SQL服务器名;U是用户;P是密码实例
EXEC master..xp_cmdshell 'bcp his.dbo.tb_test out d:test.xls -c -q -S"DATABASE" -U"sa" -P"password"'/*支持select数据再导出*/
exec master..xp_cmdshell 'bcp " select * from his..t_emp where leave_flag=''N'' " queryout d:\emp.xls -c -U "sa" -P "password"'
--将数据库his中 表t_emp导出到d:\emp.xls ,即是导出成电子表格文件
" queryout d:\emp.xls -c -U "sa" -P "密码"'
exec master..xp_cmdshell 'bcp " select * from [youdbname].[dbo].tc_contact a inner join [youdbname].[dbo].tc_account b on a.account_id = b.account_id
" queryout d:\emp.xls -c -U "sa" -P "密码"'
用法: 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