【问题标题】:A stored procedure returning string values返回字符串值的存储过程
【发布时间】:2011-10-19 08:28:21
【问题描述】:

我想知道这是否是一个好习惯。我有一个数据库,其中包含一些使用C# 应用程序运行的存储过程。

从可以直接显示给应用程序用户的存储过程中返回消息是一种好习惯吗?

例如:

CREATE PROCEDURE CheckParam

@Param int,
AS
 BEGIN

IF (@Parem > 0)
 BEGIN              
    SELECT 'Parameter is greater than 0'
 END
ELSE SELECT 'Parameter is smaller than 0' 
END

【问题讨论】:

    标签: string tsql return


    【解决方案1】:

    不,不是。这是一种可怕的做法。如果您需要支持多种语言或多种显示格式怎么办。除此之外,当项目变得更大时,当表示逻辑的某些部分驻留在 DATABASE!!! 上而某些部分驻留在客户端时,您会开始感到困惑。只需从 DATABASE 中返回 DATA,仅此而已。

    【讨论】:

      【解决方案2】:

      通常认为最佳做法是让代码层设置消息文本,因为这样可以让代码的未来维护者清楚地遵循预期的逻辑。

      【讨论】:

        【解决方案3】:

        如果你有一个更好的例子会更容易;您使用的那个肯定会带来一定程度的性能开销,我不会对此感到满意!

        通常,SQL 函数更适合返回“标量”值。我建议你熟悉这些。

        【讨论】:

          猜你喜欢
          • 2014-10-20
          • 1970-01-01
          • 2020-10-10
          • 2011-09-20
          • 1970-01-01
          • 2016-05-07
          • 2013-06-19
          • 1970-01-01
          • 2021-08-15
          相关资源
          最近更新 更多