2012-10-26 152 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 - 你的目标应该是一般的意向适用于您的存储过程

相关问题