我正在使用ssms并试图将存储过程的结果导出到新的excel文件中。sp接受一个int参数,但我在查询中找不到调用它的方法。
最近的努力-
EXEC sp_makewebtask
@outputfile = 'C:\Users\me\Documents\testing.xls',
@query = **ExportAsExcel** N'@id' = 123
@colheaders =1,
@FixedFont=0,@lastupdated=0,@resultstitle='Testing details'
运行存储过程会产生两个数据表,我需要在不同的工作表中使用它们。你们中有谁能建议一个更好的办法来解决这个问题吗?它甚至不需要自动化,我只需要得到正确的数据。SP名称在上面用粗体显示。
谢谢你的时间,
小时
最佳答案
我建议您将存储过程分成两个过程,每个过程分别返回一个单独的表,并将这些表调用到不同的工作表。
有多种方法可以使用sql将数据返回到excel
这里是我在code by Joshua中最喜欢的一个(您不必使用参数):
选择Excel功能区上的“数据”选项卡,然后在“获取外部数据”组中选择“来自其他源”下拉列表。然后选择“从Microsoft查询”
在“选择数据源”弹出框中,选择您的SQL Server,然后单击“确定”。
如有必要,关闭“添加表格”弹出窗口。
单击“sql”按钮,或选择view>sql打开sql弹出编辑器。
输入以下语法:{调用mydatabasename.dbo.mystoredpoc(?),?,?)}
例如:{调用northwind.dbo.spgetmaxcost(?),?,?)}
一定要在call语句周围加上弯曲的大括号。每个问号(?)指示参数。如果存储过程调用更多或更少的参数,则根据需要添加或减去问号。
按“确定”按钮。应该弹出一个问题框,说明“不能以图形方式表示SQL查询,仍要继续吗?”,只需按“确定”按钮。
现在将要求您为上面包含的每个问号提供示例参数。为正在查询的数据输入有效的参数值。
输入最后一个参数后,您应该在Microsoft Query中得到一些结果。如果它们看起来不错,请关闭Microsoft Query。
现在您应该看到一个“导入数据”弹出窗口。单击属性按钮,将弹出“连接属性”弹出窗口。
选择“定义”选项卡,然后选择“参数”按钮。现在您应该会看到一个“参数”弹出窗口,您可以在其中将参数连接到特定单元格。
选择“从下列单元格中获取值”,然后通过单击带有箭头的小框,连接到Excel中保存参数的相应单元格。
如果希望每次更改包含参数的单元格时都刷新数据,请选中“单元格值更改时自动刷新”复选框。
对于其他参数,按上述步骤继续。完成后,单击“确定”返回到“连接属性”弹出窗口。单击“确定”返回“导入数据”弹出窗口,然后再次单击“确定”。
现在应该直接从存储过程中获得一些数据。
您将得到类似于以下内容的连接信息:
连接信息
而且,如果你使用工作表中的参数,例如,