我可以在SQL SERVER函数或存储过程中传递变量参数吗?

时间:2012-09-03 08:36:32

标签: sql-server-2008 sql-server-2008-r2

我有一种情况,我必须从同一查询中检索不同场景的记录集。我的意思是,必须创建一个函数或存储过程可以运行多个参数,如果我传递2参数然后它可以工作,如果我传递3参数然后也能够工作等等。我们可以创建一个Sp或函数,我们可以在sql server中传递变量参数吗?

1 个答案:

答案 0 :(得分:1)

您可以使用可选(默认)参数创建存储过程:

CREATE PROCEDURE TestProcedure
(
   @Param1 int = null,
   @Param2 int = null,
   ...
   @ParamN int = null)
{
   //do stuff
}

然后你可以将其称为

EXEC TestProcedure 1
EXEC TestProcedure 1, 2

等等,直到

EXEC TestProcedure 1, 2 ... N

这显然意味着参数数量的上限,但是如果这对你来说是可接受的,那么它将实现你所描述的内容