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+ ',','') + ' ' + 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,适当的预先进行测试,尤其是当查询数据量比较大时,需要特别注意防止转换过程中引发的内存溢出等问题影响结果。
编辑:一起学习网
标签:查询结果,文件,表格,双击,代码