传递参数调用存储过程后

我有以下UDF:传递参数调用存储过程" title="存储过程">存储过程后

create function fn_name 

(@first varchar(50),

@middle varchar(50),

@last Varchar(50))

returns varchar(100)

as

begin

return

case

when @middle is null then @first+' '[email protected]

when Len(@middle)=0 then @first+' '[email protected]

else @first+' '[email protected]+' '[email protected]

end

end

我想创造上述功能的存储过程,我一个传入参数由一个经过这样的方式,但在调用存储过程。在SQL Server中可能吗?如果是,如何?

回答:

您并不是真的想多次为每个参数调用存储过程。这是一场噩梦,因为你必须在通话之间保存状态。相反,使用可选参数:

create procedure usp_name (

@first varchar(50) = '',

@middle varchar(50) = '',

@last varchar(50) = '',

@name varchar(100) output

)

as

begin

select @name = (case when @middle is null then @first+' '[email protected]

when Len(@middle)=0 then @first+' '[email protected]

else @first+' '[email protected]+' '[email protected]

end);

end; -- usp_name

现在,所有三个参数都是可选的。如果你这样调用它:

declare @name varchar(100); 

exec @name = @name output;

然后它会返回''。如果您致电:

declare @name varchar(100); 

exec @first = 'Gordon', @last = 'Linoff', @name = @name output;

然后您将获得'Gordon Linoff'

并非所有参数都必须是可选的,如本例中所示。当您指定默认值时,它们将变为可选。

以上是 传递参数调用存储过程后 的全部内容, 来源链接: utcz.com/qa/258918.html

回到顶部