我在SQL Server設計一個存儲過程,一個普遍的問題創建一個帶有許多參數的存儲過程:從網站
我有一個網站,用戶可以使用多達說30點的屬性做一些搜索(這意味着他可以使用全部30個標準,或者他可以只使用5個標準)。
你會如何爲此設計一個存儲過程?設計這個程序時你會記住什麼?
在此先感謝。
我在SQL Server設計一個存儲過程,一個普遍的問題創建一個帶有許多參數的存儲過程:從網站
我有一個網站,用戶可以使用多達說30點的屬性做一些搜索(這意味着他可以使用全部30個標準,或者他可以只使用5個標準)。
你會如何爲此設計一個存儲過程?設計這個程序時你會記住什麼?
在此先感謝。
你可以做這樣的事情:
create procedure foo
@param1 int = null,
@param2 int = null,
@param3 int = null,
...
在where子句中你可以這樣做
然後:
where (@param1 = null or @param1 = somevalue)
and (@param2 = null or @param2 = somevalue)
....
通過具有空的參數的,你可以在參數任意組合輕鬆傳遞你存儲過程。只要注意看你的執行計劃,並確保沒有參數嗅探發生。
看看http://stackoverflow.com/a/3415629/201648 –