【问题标题】:SQL Server return 1 rows affected when null returned from a function当函数返回 null 时,SQL Server 返回 1 行受影响
【发布时间】:2017-07-19 05:32:41
【问题描述】:

我有一个警报服务,它在 SQL 语句返回多行时触发。从视图中选择语句被添加到此警报服务中。

因为我是从视图中调用一个函数,所以它总是返回一行,即使它为空。有什么方法可以返回受影响的 0 行(当函数返回 null 时)?

Mappings
-------------------------
NULL

(1 row(s) affected)

我想要这个

Mappings
-------------------------

(0 row(s) affected)

【问题讨论】:

  • 具有NULL 值的单个记录是否有其他含义阻止您使用它?
  • C# 代码 repDS.Tables[0].Rows.Count 在这种情况下会返回 1 并触发警报;这是要避免的。
  • WHERE Mappings IS NOT NULL 添加到您现有的查询中?
  • 达米安,成功了!万分感谢!选择 [dbo].GET_PRODUCT_MAPPINGS() 作为映射,其中 [dbo].GET_PRODUCT_MAPPINGS() 不为空
  • 我避免调用该函数两次。将 cte 设为 ( select Mappings = GET_PRODUCT_MAPPINGS() ) 从 cte 中选择映射,其中 cte.Mappings IS NOT NULL

标签: sql sql-server function null


【解决方案1】:

选择 [dbo].GET_PRODUCT_MAPPINGS() 作为映射,其中 [dbo].GET_PRODUCT_MAPPINGS() 不为空。

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 2013-06-06
    • 2018-04-04
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多