2012-10-25 24 views
1

我在SQL Server設計一個存儲過程,一個普遍的問題創建一個帶有許多參數的存儲過程:從網站

我有一個網站,用戶可以使用多達說30點的屬性做一些搜索(這意味着他可以使用全部30個標準,或者他可以只使用5個標準)。

你會如何爲此設計一個存儲過程?設計這個程序時你會記住什麼?

在此先感謝。

+0

看看http://stackoverflow.com/a/3415629/201648 –

回答

1

你可以做這樣的事情:

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) 
    .... 

通過具有空的參數的,你可以在參數任意組合輕鬆傳遞你存儲過程。只要注意看你的執行計劃,並確保沒有參數嗅探發生。