2
我有一種情況,服務器端函數(c#)應該從不同的表(t1,t2,...)數據庫返回不同的選擇,但參數的數量和類型始終相同。mssql - 一個存儲過程vs多個存儲過程
有一個參數@Type
它確定應該返回的選擇類型。
爲每個@type
寫一個不同的存儲過程或寫入一個存儲過程switch(@type)
在它裏面會更好嗎?
編輯: 每個選擇的可能很大約2000 - 3000字符
我有一種情況,服務器端函數(c#)應該從不同的表(t1,t2,...)數據庫返回不同的選擇,但參數的數量和類型始終相同。mssql - 一個存儲過程vs多個存儲過程
有一個參數@Type
它確定應該返回的選擇類型。
爲每個@type
寫一個不同的存儲過程或寫入一個存儲過程switch(@type)
在它裏面會更好嗎?
編輯: 每個選擇的可能很大約2000 - 3000字符
如果存儲過程之間唯一的共同點是參數的定義,我看不出有任何理由讓他們成爲一個存儲過程。
一個軟件設計的原則是Single Responsibility Principle - 你的目標應該是一般的意向適用於您的存儲過程
不同的表 – dllhell
正如一個音符 - 有可能是它是有用的,只需使用1箱子雖然存儲過程是這樣的,但基於參數使用不同的表來返回結果集。我們正在使用存儲過程getProducts(@ country =「GB」),它將產品表與價格表結合在一起。價格表根據通過的國家而不同。但由於它總是產品+價格,我們選擇使用相同的程序將它們集中在一個地方。 – surfmuggle