【问题标题】:mssql - one stored procedure vs multiple storedproceduresmssql - 一个存储过程与多个存储过程
【发布时间】:2012-10-26 06:49:25
【问题描述】:

我有一种情况,服务器端函数 (c#) 应该从不同的表 (t1,t2, ...) 数据库返回不同的选择,但参数的数量和类型始终相同。

有一个参数@Type 确定应该返回的选择类型。

是为每个@type编写不同的存储过程还是编写一个包含switch(@type)的存储过程更好?

编辑: 每个选择可能很大,大约 2000 - 3000 个字符

【问题讨论】:

  • 就像一个注释 - 可能存在只使用一个存储过程很有用的情况,尽管事实上,基于参数不同的表用于返回结果集。我们正在使用一个存储过程 getProducts(@country="GB") 将产品表与价格表连接起来。价格表因通过的国家/地区而异。但由于它始终是产品 + 价格,我们选择使用相同的程序将它们全部放在一个地方。

标签: sql-server stored-procedures


【解决方案1】:

如果存储过程之间唯一的共同点是参数的定义,我看不出有任何理由将它们作为一个存储过程。

软件设计的原则之一是Single Responsibility Principle - 您应该将这种一般意图应用到您的存储过程中

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多