传递参数调用存储过程后
我有以下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