【问题标题】:Add a parameter to display a message if no records returned after executing a stored procedure添加参数,如果执行存储过程后没有返回记录,则显示消息
【发布时间】:2022-01-06 01:41:39
【问题描述】:

我正在传递一些参数并获取请求参数的相应结果。假设我想添加一个参数以在执行存储过程后没有返回记录时显示消息 - 我该怎么做?

【问题讨论】:

  • 请向我们展示您到目前为止所做的事情以及您考虑和尝试过的事情。
  • select 语句之后检查@@ROWCOUNT 的值以检查是否返回记录,根据该值和您的新输入参数,您可以raise 一条消息[不能显示存储过程中的图像]
  • 我认为返回某种“未找到记录”消息应该是应用程序/表示层的工作,而不是存储过程。当应用程序/表示层可以简单地检测到“rowcount = 0”并做正确的事情时,尝试沿着printraiserrorthrow 路径从存储过程中执行此类操作只会不必要地复杂化。

标签: sql-server azure loops stored-procedures not-exists


【解决方案1】:

当没有找到记录时,您可以使用 CASE 语句输出消息。

以下是返回每个城市的员工人数的示例。

每个城市包含员工详细信息的表格数据:

提供每个城市的员工数量并在未找到记录时显示消息的存储过程。

    CREATE PROCEDURE CheckEmployee_byCity
      @City varchar(100)
 
    AS
    BEGIN
    SET NOCOUNT ON;

    Declare  @ReturnValue Varchar(100);

    SELECT @ReturnValue = case when Count(*)>0 then convert(varchar,count(*)) when count(*)= 0 then 'No Employees found' end
    FROM [dbo].[Employees] WHERE City = @City

    select @ReturnValue as 'Return value'

    END

结果:

EXEC  CheckEmployee_byCity @city = 'London';

EXEC  CheckEmployee_byCity @city = 'California';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2019-08-05
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    相关资源
    最近更新 更多