我正在制作一个可以接受多个参数的存储过程。例如,如果一个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
答案 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
的更多信息