爲傳遞參數值可能爲空的sql server 2005編寫動態參數化查詢的最佳方法是什麼?在SQL Server 2005中編寫動態SQL查詢
回答
如何像
DECLARE @Table TABLE(
val1 VARCHAR(20),
val2 VARCHAR(20)
)
DECLARE @Param VARCHAR(20)
INSERT INTO @Table SELECT '1','2'
SELECT *
FROM @Table
WHERE (@Param IS NULL OR val1 = @Param)
然而,這會降低性能。 我會建議,當你建立你的動態查詢時,不要將參數添加到where子句,如果它不是需要的。
只有可能:
編寫查詢所有的參數包括,但不是寫一個普通的
WHERE
[email protected]
and [email protected]
.....
寫
WHERE
(@param1 is null or [email protected])
and (@param2 is null or [email protected])
...
或
WHERE
field1=isnull(@param1,field1)
and field2=isnull(@param2,field2)
...
但如果出現嚴重的性能問題,請考慮爲每個單個案例編寫查詢。
只有當這個查詢在小表上每秒鐘執行許多次時,纔有理由完整地寫它,使用sp_prepare/sp_execute作爲它,所以它在這種情況下運行速度最快。
首先讓我知道你如何格式化在評論中寫的代碼,以便我可以以格式化的形式向您發送我的代碼 – NoviceToDotNet 2010-08-19 10:04:20
有一個JS在本網站上運行,它會自動格式化它。在寫出問題或答案時,請在每行至少加上4個空格(不適用於評論)。或者你可以在這個網站上使用WYSIWYG編輯器的工具面板。我手動添加的空格/標籤,因爲該網站不管理這些空間/標籤。 – AlexanderMP 2010-08-19 10:07:15
我還能做些什麼來保持性能 我想知道一些代碼,請按照以上方法讓我知道嗎? – NoviceToDotNet 2010-08-19 16:51:35
- 1. SQL查詢在SQL Server 2005
- 2. 編寫動態SQL查詢
- 3. SQL Server 2005查詢
- 4. 查詢SQL Server 2005中
- 5. 查詢SQL Server 2005中
- 6. 在SQL Server DISTINCT 2005查詢
- 7. 如何在SQL Server 2005中編寫INSERT IF NOT EXISTS查詢
- 8. 編寫一個簡單的SQL Server 2005動態sql
- 9. 如何動態地在SQL Server 2008中編寫查詢?
- 10. SQL Server 2005的XML查詢
- 11. SQL Server 2005子查詢
- 12. SQL Server 2005性能查詢
- 13. 樞軸查詢 - SQL Server 2005
- 14. SQL Server 2005查詢幫助
- 15. SQL Server 2005和.NET查詢
- 16. SQL Server 2005求和查詢
- 17. SQL Server 2005 - 優先查詢
- 18. SQL Server 2005,SELECT DISTINCT查詢
- 19. SQL Server 2005 XML查詢
- 20. 如何在sql server 2005中編寫sql server數據庫圖表?
- 21. 動態SQL Server 2005透視
- 22. 動態SQL Server查詢
- 23. 動態查詢的SQL Server
- 24. 動態查詢SQL Server
- 25. SQL查詢,通配符,MS SQL SERVER 2005
- 26. sql-server 2005中的動態與顯式查詢
- 27. SQL Server 2005查詢使用?這在SQL Server 2012中無效
- 28. 寫SQL Server查詢
- 29. 如何在SQL Server中的else語句中編寫SQL查詢
- 30. UPDATE SET中的子查詢(sql server 2005)
礦是不是存儲過程這是一個參數化查詢 – NoviceToDotNet 2010-08-19 09:59:43
轉到鏈接,看到了DOUCMENT及其所有人都在談論EXCUETING動態參數QUERY – 2010-08-19 10:00:54
你是正確的,但請禮貌;) – abatishchev 2010-08-20 07:33:52