如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中

我通过EXCEL2003的“数据”--“导入外部数据”--“新建数据库”查询功能从SQLServer中读取数据或者执行一个读取数据的存储过程,并将结果返回到EXCEL工作... 我通过EXCEL 2003的“数据”--“导入外部数据”--“新建数据库”查询功能从SQL Server中读取数据或者执行一个读取数据的存储过程,并将结果返回到EXCEL工作表中。现在我写了一个查询多个表的数据的存储过程,想将数据一次性返回到EXCEL中,以便节省时间,但是每次只能返回第一张表的数据。

存储过程在查询分析器中的执行效果如下图:

返回给EXCEL后,只能看到第一张表中的数据。
展开
 我来答
17号观察室
2013-05-17 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1360万
展开全部
你这个表的内容不一样 没办法一次搞
如果内容一致的话可以联合在一起
告诉你一个最简单的方法 根本不用导出
单击左上角 选中所有 然后右击——选择“连同标题一起复制” 最好粘贴到xls里即可 效率最好

希望解决了你的问题
追问
这种方法也未尝不可,只是也得多次复制,一次只能复制一张表。我知道我的问题可能没有答案,我希望等下,如果没有更好的解决办法,我选用您的答案。这个答案我本来就会。还有,你真的可以连标题一起复制吗?我用的SQL Server 2005的SQL Server Management Studio。另外,复制出来只能是csv,逗号分隔符文件格式,无法用EXCEL去保存。身份证号粘过去,后三位就变成了0.
追答
嗯 如果你硬要这样整的话 也许可以 写个脚本 直接输出  对应好xls(xls要先建立) 
这个我是通过xls里 多个sheets 一次性导入到数据库的逆向思维 不知道行不行 我把脚本给你 你可以尝试下
------excel数据导入
---启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
go

----数据准确
select * into temp_自费
from
OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=E:\hospital\test.xls'
,'select * from [11$]')

select * into temp_医保
from
OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=E:\hospital\医保药品维护.xls'
,'select * from [医保 药品$]')

--- 使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
go
TAT萝卜
2013-05-17 · TA获得超过4972个赞
知道大有可为答主
回答量:3084
采纳率:66%
帮助的人:1112万
展开全部
导入数据时,用查询语句
select 身份证号,子集编号,...,'','' from table1 union ....

缺少的列用''补齐就可以了
更多追问追答
追问
说句实在话,这样不行,你去看看UNION到底怎么用的,能不能把日期列和字符列合并为同一列……
追答
只是提供点思路供而已。
这问题解决方法应该很多,比如查询时进行类型转换,或VBA+ADO

根据实际灵活选择才是正解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式