TSQL:使用可以有两个值的参数执行过程

TSQL:使用可以有两个值的参数执行过程,tsql,stored-procedures,parameters,Tsql,Stored Procedures,Parameters,大家好, 我要执行以下过程: EXECUTE MYDB.dbo.MYPROCEDURE @gender='male', @status='single' 身份可以是单身、离婚或已婚。 我需要对所有单身和离婚的男性执行这个程序 我能做到吗 非常感谢除非重写过程,否则这是不可能的如果不更改过程,这是不可能的 一个选项是将值设置为single,并具有以下WHERE子句: WHERE [status]=@status OR (@status='singledivorc

大家好,

我要执行以下过程:

EXECUTE MYDB.dbo.MYPROCEDURE 
        @gender='male',
        @status='single'
身份可以是单身、离婚或已婚。 我需要对所有单身和离婚的男性执行这个程序

我能做到吗


非常感谢

除非重写过程,否则这是不可能的

如果不更改过程,这是不可能的

一个选项是将值设置为
single
,并具有以下
WHERE
子句:

WHERE [status]=@status
OR (@status='singledivorced' AND ([status]='single' or [status]='divorced'))

最好的方法是将存储过程改为表值函数。然后您可以调用它两次,并合并所有结果以得到一个resultset。另一种方法是只调用存储过程两次,然后自己将结果相加

除非您能够返回两个结果集(通过执行语句两次),否则您将需要对SQL语句进行某种修改