2012-10-26 112 views
2

我有一種情況,服務器端函數(c#)應該從不同的表(t1,t2,...)數據庫返回不同的選擇,但參數的數量和類型始終相同。mssql - 一個存儲過程vs多個存儲過程

有一個參數@Type它確定應該返回的選擇類型。

爲每個@type寫一個不同的存儲過程或寫入一個存儲過程switch(@type)在它裏面會更好嗎?

編輯: 每個選擇的可能很大約2000 - 3000字符

+0

不同的表 – dllhell

+0

正如一個音符 - 有可能是它是有用的,只需使用1箱子雖然存儲過程是這樣的,但基於參數使用不同的表來返回結果集。我們正在使用存儲過程getProducts(@ country =「GB」),它將產品表與價格表結合在一起。價格表根據通過的國家而不同。但由於它總是產品+價格,我們選擇使用相同的程序將它們集中在一個地方。 – surfmuggle

回答

2

如果存儲過程之間唯一的共同點是參數的定義,我看不出有任何理由讓他們成爲一個存儲過程。

一個軟件設計的原則是Single Responsibility Principle - 你的目標應該是一般的意向適用於您的存儲過程

相關問題