存储过程中的空参数

Posted

技术标签:

【中文标题】存储过程中的空参数【英文标题】:Null parameters in stored procedure 【发布时间】:2010-10-19 10:48:05 【问题描述】:

在存储过程中处理空参数的最佳方法是什么?

我有一个带有 3 个输入参数的存储过程,其中任何一个参数都可以为空,那么如何处理这些参数。

SP_GetDetails输入参数(varchar p1, varchar p2, int p3, datetime p4, datetime p5)

在存储过程中,根据输入参数有不同的查询。

if(p1<>null)
///
else
 if(p2<>null)
 ///
 else
  if()... so on...

所以我的问题是:有 n 个 if 条件是否很好。

【问题讨论】:

请举个例子。本题信息不足。 【参考方案1】:

您的问题缺少很多细节。我怀疑这可能会有所帮助。 Dynamic Search Conditions in T-SQL

【讨论】:

【参考方案2】:

在存储过程中使用多个If 语句会降低代码的可读性。此外,代码的可维护性也会受到影响。相反,您可以使用 CASE 语句。

【讨论】:

以上是关于存储过程中的空参数的主要内容,如果未能解决你的问题,请参考以下文章

如何去除SQLSERVER中的空表,要使用啥命令,或者啥方法

通过 JDBC 调用 Sybase 存储过程时的空结果集

如何将 vb.net 中日期的空值传递给 sql 存储过程?

sql server中的存储过程最多可以有多少参数

将参数传递给C#中的存储过程

返回 NULL 的空数组的 array_length()