2015-03-31 47 views
-1

@參數和參數!param.Value之間有什麼區別在這個網站,我搜索一下業績報告,我發現問題在SSRS

然後我看到一些答案,他們用這樣的代碼

="SELECT col1,col2 FROM tbl1 WHERE col1 = " & Parameters!param.Value 

那麼當我看到這個答案,我嘗試在我的報告中使用

我的老數據集在報告中像這樣的代碼

="SELECT col1,col2 FROM tbl1 WHERE col1 = @param " 

我編輯到

="SELECT col1,col2 FROM tbl1 WHERE col1 = '" & Parameters!param.Value & "' " 

當我運行我的報告.....它運行得更快O_o?

爲什麼在編輯數據集後,我的報表運行速度更快? WHERE col1 = @paramWHERE col1 = '" & Parameters!param.Value & "' "

有什麼區別謝謝。

+0

您可以使用分析器查看發送到SQL Server的查詢是否不同。 – 2015-03-31 16:50:48

回答

0

兩者都是相同的,但如果您使用@param而不是參數!param.Value會給您更多的靈活性。如果您使用@參數,則需要在數據集的參數部分設置參數。但是,如果你直接在你的查詢中使用參數,那麼你不需要設置參數。

enter image description here

說你有它由約1000行代碼的大即席查詢和說,一些15-20參數那裏可以很容易地處理這種情況。例如,如果您需要引用另一個參數而不是某個參數。在那種情況下,你需要明確地改變即席查詢,但是如果你已經聲明@參數,只需要引用另一個參數。

另一種情況是,如果你已經改變了從單值到多值的ur參數,那麼它很容易處理。另一種情況是,如果你使用存儲過程,那麼很容易映射參數。