MSSQL查询结果快速转换为表格
(如Excel)
查询结果格式通过Excel(或其他表格式文件)传递广泛使用,特别是在微软MSSQL 服务器中,有时候也需要将查询结果转换成Excel报表。
通过以下代码可以方便快捷的将MSSQL的查询结果转换为表格(比如Excel文件)格式:
declare @mytable table
( column_1 int,
column_2 int, column_3 char(1)
)
INSERT INTO @mytable SELECT
1,2,'A'
INSERT INTO @mytable SELECT
3,4,'B'
DECLARE @sql VARCHAR(MAX)
SELECT @sql = ISNULL(@sql+ ',','') + ' ' + nameFROM
sys.columns WHERE
object_id=object_id(@mytable)
SET @SQL = 'Select * FROM (SELECT * FROM @mytable) TPIVOT (COUNT(Column_1) FOR column_3 IN ( ' + @SQL + ')) P
'
EXEC (@SQL) --创建Excel文件进行输出:
EXEC sp_makewebtask @outputfile='d:\export\export.xls',@sqlstr=@sql
在服务器端履行完上述代码,就会在指定文件夹中(如 d:\export\)生成一个Excel文件(“export.xls”),内容为原查询的结果转换过来的。
除使用内置的Stroed Procedure来导出表格以外,在现代化的MSSQL环境下,也能够使用Integration Services来实现转换(比如在SQL2012和后续版本)。
首先,需要安装Integration Services(SSIS),然后打开Visual Studio,单击”新建项目”,从SQL Server中找到Integration Services,在结果中双击 Integration Services Project Template,以后就能够创建一个integration Services 项目,在项目中新建一个Package,双击Data Flow中的输入任务,一步一步依照提示,完成任务便可完成查询结果导出导入转换。
最后,提供一建议:不论是使用内置的Stroed Procedure或者Integration Services,适当的预先进行测试,特别是当查询数据量比较大时,需要特别注意避免转换进程中引发的内存溢出等问题影响结果。
文章来源:丸子建站
文章标题:MSSQL查询结果快速转换为表格
https://www.wanzijz.com/view/47166.html