存储过程中的空参数

时间:2010-10-19 10:48:05

标签: sql-server-2008 stored-procedures

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

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

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

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

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

所以我的问题是:有多少if条件是否合适。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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