存储过程需要多个参数

时间:2014-05-12 07:11:38

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

我正在制作一个可以接受多个参数的存储过程。例如,如果一个X为null,那么如果你没有Y值就可以取Y,你可以拿Z.这就是所以到目前为止,如果表中的列中的值不存在,则必须在表中检查是否存在值,它应该放置默认值。到目前为止,这是我的编码,我打算提出如何继续前进的建议..

ALTER procedure [dbo].[Support_status_Check_](@ANr int, 
@gnr int =  0,@idnr varchar(20) = null,@DefaultAction varchar(20) 
= 'DEFAULT_Status')
as

--declare @user as varchar(30)
declare @atnr as integer

if @gnr = 0 and @idnr is null
select @gnr = Gnr from dbo.tableA where Anr = @Anr

if @Anr is null and @idnr is null 
select @Anr = Anr from dbo.TableA where GNr = @gnr

1 个答案:

答案 0 :(得分:0)

至于你的部分"如果一个X为空,那么如果你没有Y值就可以拿Y,你可以拿Z" 你可以像

那样做
 select  isnull(X,isnull(Y,Z))

这里如果X为null,它将在","之后解决表达式。 ..所以它将解决isnull(Y,Z),如果Y为null,它将采用Z作为解决方案。

所以你可以在你的代码中应用这个想法

检查这个以了解有关isnull函数http://technet.microsoft.com/en-us/library/ms184325.aspx

的更多信息