计算传递给SQL中的过程的参数数量

时间:2015-01-24 10:37:35

标签: sql sql-server tsql stored-procedures ssms

我有一个程序,其中我允许可变数量的参数,即

CREATE Procedure OutputProcedure
 @FirstName nvarchar(20) = null,
 @MiddleName nvarchar(20) = null, 
 @LastName nvarchar(20) = null, 
 @City nvarchar(20) = null,
 @AveragePercentage int out

AS
BEGIN
/*CODE*/
End

现在,我希望能够计算传递给此过程本身内部过程的参数数量。我怎么能这样做?

我找到了This,但它会检查参数的名称,如果我只是在同一程序中进行计数,我认为不应该这样。

1 个答案:

答案 0 :(得分:1)

您可以在SP内执行此操作。试试这个。

Declare @cnt int

select @cnt = case when @FirstName is not null then 1 else 0 End+
       case when @MiddleName is not null then 1 else 0 End+
       case when @LastName is not null then 1 else 0 End+
       case when @City is not null then 1 else 0 End 

Select @cnt