簡體   English   中英

您可以在 SSRS 數據集中使用 T-SQL 語句嗎?

[英]Can you use T-SQL statements in an SSRS dataset?

我有一個迭代 CTE 並為每一行執行自定義 sp_executesql 查詢的腳本。 我需要在 SSRS 報告中使用結果表,但數據集似乎不允許聲明、cursor 和 exec 語句。

有什么方法可以讓 T-SQL 在 SSRS 中工作?

是的,我幾乎總是在我的數據集中使用整個腳本。 只有查詢設計器不支持它們。

只需在 SSMS 或其他任何內容中編寫腳本,然后將其粘貼到查詢編輯器中。 請記住注釋掉將從報告中作為參數傳入的任何變量聲明。

如果雙擊數據集名稱並確保查詢類型為文本,則可以直接將腳本復制進去。

備注

  1. 不要聲明任何需要從報告中作為參數傳入的變量。 我通常只是在數據集查詢中注釋掉這些。 例如,如果您從報告參數中傳遞員工 ID,那么您的數據集將不需要該聲明,因此它看起來像這樣

    SELECT * 來自 myTable 其中 EmpID = @EmpID

Obvisouly,當您在 SSMS 中測試腳本時,您將需要此聲明

  1. 確保對@Variables 的所有引用都用相同的大小寫拼寫。 當涉及到變量名時,SSRS 區分大小寫。

  2. 只有您的腳本輸出的第一個結果集才會“看到”我的 SSRS,因此請確保您只有一個輸出最終數據的 SELECT 語句。

T-SQL 在 SSRS 數據集中運行良好。 我經常聲明變量,使用臨時表和其他 T-SQL 語句,並且過去使用過 cursor 和 exec 語句。

問題可能出在您返回的內容中。 “查詢”(整個 SQL 語句)應該只返回一個應該具有穩定結構的表。 例如,在 cursor 的每次迭代中返回一行是行不通的。 將它們放在臨時表中,然后在 cursor 執行后立即全部返回。 您也不能為不同的執行返回不同的列類型或名稱。

此外,不要聲明用作參數的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM