存储过程返回字符串值

时间:2011-08-03 18:06:42

标签: string tsql return

我想知道这是不是一个好习惯。我有一个数据库,其中包含一些使用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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

不,不是。这是一个糟糕的做法。如果您需要支持多种语言或多种显示格式,该怎么办?除此之外,当项目变大时,当表示逻辑的某些部分驻留在 DATABASE !!! 和客户端的某些部分时,您将开始感到困惑。只需从DATABASE返回DATA即可。

答案 2 :(得分:1)

如果你有一个更好的榜样会更容易;你使用的那个肯定会带来一定程度的性能开销,我不满意!

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