[英]Passing parameters after calling stored procedure
我有以下UDF:
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+' '+@Last
when Len(@middle)=0 then @first+' '+@Last
else @first+' '+@middle+' '+@Last
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+' '+@Last
when Len(@middle)=0 then @first+' '+@Last
else @first+' '+@middle+' '+@Last
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'
。
並非在此示例中所有參數都是可選的。 當您指定默認值時,它們變為可選。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.