(旧调重弹,100分)从SQL SERVER导出表数据到EXCEL,要求表字段也要导出EXCEL。
1、SQL SERVER ===》EXCEL 的数据转移 用 BCP 实现,我已经学会,就象如下语句:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
2、但这样导出形成的EXCEL文件没有 原表 的对应列名,我寻遍SQL SERVER的帮助文件和网络资源,找不到相关线索
3、用DTS导出固定字段数目的表可能是合适的,但因为我用语句生成的表是“交叉表”(也即列数不固定,有可能是10列,也有可能是60列),DTS要求先定义好[数据源]与[目的地]的对应关系,(而后以任务方式执行),所以我没有办法用DTS来做
4、因为我需要做一个报表程序,已经把“能产生预期结果的语句”做成后台的“存储进程”了,但公司内部的格式要求,使得直接打印出来的报表不能合格,所以想到导出到EXCEL,由操作人员来编辑,这样当然需要有原先表的列名称啦!
5、关于BCP,我去仔细查看了相关书籍,发现一般都没有提到‘字段名称’引出的说法,可能从BCP作为数据导入导出工具是正确的,不是‘数据结构导入导出工具’。至于要在EXCEL文件中有字段名称,可以采取在‘EXCEL’内用‘QUERY’查询工具,设立选项从SQL SERVER 中获取表,这样就会有字段名称了, “一个是给,一个是拿”,思维角度不同。应该只能这样绕开,否则要采取如下方法:
(5.1)、用BCP 引出 SQL表的 格式文本A(内容包括 字段名称)
(5.2)、用语句把‘字段名称’从A中取出,再放入取应EXCEL文件的第一行。
但是这样的方法对一般的用户来说还是太麻烦,不知哪位大侠能指点一二,能更方便一点?