2010-06-03 120 views
0

注意:我是而不是嘗試使用L2SQL數據上下文調用SQL Server存儲過程。在SQL Server存儲過程中使用LINQ to SQL結果

我使用LINQPad進行一些相當複雜的「報告」,它將L2SQL輸出保存到數組中並進一步處理。

例如,使用LINQ to Objects進行多級別的分組通常要容易得多,而不是試圖優化T-SQL查詢以在合理的時間內運行。

什麼是最簡單的方法來獲取這些「應用程序」的最終結果並將其用於SQL Server 2008存儲過程?

這個想法是使用Reporting Services報表的數據,而不是複製並粘貼到Excel(手動工作)中。報告需要在報告服務器上可訪問(不使用應用程序中的報告服務器控件)。

我可以輸出CSV並以某種方式通過命令行exec讀取,但這看起來像一個黑客。謝謝你的幫助。

回答

0

SQL Server 2005及更高版本允許您在.NET中編寫存儲過程。這樣你可以在報告中使用LINQ。

正式名稱是「CLR存儲過程」。 Here是一個很好的介紹。

2

有兩種可能性,這兩者都需要你用「原始」 ADO.NET:

  1. 使用SqlBulkCopy類的數據插入到一個臨時表(可能是一個臨時表)並編寫存儲過程以從該表中讀取;或

  2. 將數據寫入DataSetDataTable並使用Table-Valued Parameter將數據傳遞到存儲過程。

第二種方法比第一種方法「更清潔」,但如果數據量非常大(超過幾百行),則性能不佳。

+0

我同意表值參數可能是最好的解決方案 – 2010-06-03 21:45:27

相關問題