我想知道这是不是一个好习惯。我有一个数据库,其中包含一些使用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
答案 0 :(得分:2)
通常认为最佳做法是让代码层设置消息文本,因为这样可以使代码的未来维护者清楚地遵循预期的逻辑。
答案 1 :(得分:2)
不,不是。这是一个糟糕的做法。如果您需要支持多种语言或多种显示格式,该怎么办?除此之外,当项目变大时,当表示逻辑的某些部分驻留在 DATABASE !!! 和客户端的某些部分时,您将开始感到困惑。只需从DATABASE返回DATA即可。
答案 2 :(得分:1)
如果你有一个更好的榜样会更容易;你使用的那个肯定会带来一定程度的性能开销,我不满意!
通常,SQL函数更适合返回“标量”值。我建议你熟悉这些。