MSSQL查询结果快速转换为表格(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+ ',','') + ' ' + name
FROM
sys.columns
WHERE
object_id=object_id(@mytable)

SET @SQL = 'Select * FROM (SELECT * FROM @mytable) T
PIVOT (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查询结果快速转换为表格(mssql 查结果生成表)