Sql server 2008 如何通过在R2008 sql server上运行现有的storedprocedure或该过程的sql语句在服务器上创建文档

Sql server 2008 如何通过在R2008 sql server上运行现有的storedprocedure或该过程的sql语句在服务器上创建文档,sql-server-2008,asp-classic,export-to-excel,Sql Server 2008,Asp Classic,Export To Excel,我有一个应用程序,它运行一个存储过程,生成动态表单的结果 相同的过程用于许多表单,这些表单将具有不同的列 我想调用一个存储过程来运行现有的存储过程,并将结果转储到服务器上新创建的文档中,然后返回文件的路径 从asp经典程序端,我可以生成一个用于下载报告的链接 类似于以下内容的内容可能适用于较旧的sql server版本 EXEC sp_makewebtask @outputfile = 'E:\NMCMS_DEMO\UploadedMedia\Reports\Form.xls'

我有一个应用程序,它运行一个存储过程,生成动态表单的结果

相同的过程用于许多表单,这些表单将具有不同的列

我想调用一个存储过程来运行现有的存储过程,并将结果转储到服务器上新创建的文档中,然后返回文件的路径

从asp经典程序端,我可以生成一个用于下载报告的链接

类似于以下内容的内容可能适用于较旧的sql server版本

    EXEC sp_makewebtask 
    @outputfile = 'E:\NMCMS_DEMO\UploadedMedia\Reports\Form.xls', 
    @query ='Select max(case when fe.FLabel = ''Account Number'' then [ItemValue] end) as [Account Number] ,max(case when fe.FLabel = ''Cell Number'' then [ItemValue] end) as [Cell Number] ,max(case when fe.FLabel = ''Comment'' then [ItemValue] end) as [Comment] ,max(case when fe.FLabel = ''E-mail Address'' then [ItemValue] end) as [E-mail Address] ,max(case when fe.FLabel = ''Full Name'' then [ItemValue] end) as [Full Name] ,fs.SessionID FROM  [FormSubmissions]  fs inner join formelements fe on fs.FormID = fe.FID and fe.ID = fs.FormChildID    where FormID = 12 and FType<>4 group by fs.SessionID',
    @colheaders =1, 
    @FixedFont=0,@lastupdated=0,@resultstitle='Testing details'
EXEC sp_makewebtask
@outputfile='E:\NMCMS\u DEMO\uploademdedia\Reports\Form.xls',
@query='Select max(当fe.FLabel=''账号''时,案例[ItemValue]end)为[账号],max(当fe.FLabel=''单元号''时,案例[ItemValue]end)为[单元号],max(当fe.FLabel=''注释''时,案例[ItemValue]end)为[注释],max(当fe.FLabel=''电子邮件地址''时,案例[ItemValue]end)为[电子邮件地址],max(当fe.FLabel=''全名',然后[ItemValue]结束时的大小写)为[Full Name],fs.SessionID来自[FormSubmissions]fs内部连接formelements-fe on fs.FormID=fe.FID,fe.ID=fs.FormChildID,其中FormID=12,FType4按fs.SessionID分组,
@colheaders=1,
@FixedFont=0,@LastUpdate=0,@resultstitle='Testing details'

但是,我无法将存储过程用于上述方法。

那么您的存储过程会创建一个文件吗?为什么不从classic asp调用存储过程呢?您好,我目前没有用于创建文件的工作存储过程。我问题中的代码是针对SQL2005服务器的。我想一些简单的东西,可以取代它,但目前我只得到错误对错误的错误。当尝试执行类似插入数据源的操作时,我意识到实际上我甚至不必直接将文件以.csv格式存储在服务器上,而是可以实现一个jquery插件,将asp表单上显示的查询数据转换为excel文件。从我寻找解决方案所花费的时间来看,我怀疑这可能比使用SQL语句和powershell命令快得多如果您在位置参数方面遇到问题,请在语句中添加一些附加引号,例如“从MyTblNames中选择名称”
     EXEC sp_configure 'show advanced options', 1
     GO
     -- To update the currently configured value for advanced options.
     RECONFIGURE
     GO
     -- To enable the feature.
     EXEC sp_configure 'xp_cmdshell', 1
     GO
     -- To update the currently configured value for this feature.
     RECONFIGURE   

    create procedure [dbo].[exportSubmissionsReport] 
    @login varchar(50) ='x',
    @password varchar(10) ='y$',
    @Server varchar(50) = 'my/instance', 
    @Database varchar(50) = 'database_DEMO', 
    @Statement varchar(5000),
    @fileName varchar(70) = 'TESD'

    as
    declare @query varchar(8000);
    set @query = 'sqlps.exe -command "invoke-sqlcmd ';
    set @query = @query +@Statement+ ' ';
    set @query = @query + '  -ServerInstance '+@Server+' -Username ';
    set @query = @query + @login+' -Password '+@password+' -Database                     '+@Database+'         |Export-CSV E:\NMCMS_DEMO\UploadedMedia\Reports\'+@fileName+'.csv"';
    execute xp_cmdshell @query