Sql 传递给存储过程的动态参数

Sql 传递给存储过程的动态参数,sql,sql-server,Sql,Sql Server,我似乎找不到任何特定于我正在尝试做的事情。 是否可以像这样将动态参数传递给sp CREATE DBO.STOREDPROC ( @PARAM1 nvarchar(20) @PARAM2 nvarchar(20) ) 其中,@PARAM1和@PARAM2将根据用户输入从表中定义和选择 让我澄清一下,我想实现的目标如下。从用户的输入中,假设选择了a或B,如果选择了a,则传递的参数将是@param1和@param2,如果选择了B@param3和@param4 我不确定SQL是否提供了该功能,以根据用

我似乎找不到任何特定于我正在尝试做的事情。 是否可以像这样将动态参数传递给sp

CREATE DBO.STOREDPROC
(
@PARAM1 nvarchar(20)
@PARAM2 nvarchar(20)
)
其中,
@PARAM1
@PARAM2
将根据用户输入从表中定义和选择

让我澄清一下,我想实现的目标如下。从用户的输入中,假设选择了aB,如果选择了a,则传递的参数将是
@param1
@param2
,如果选择了B
@param3
@param4

我不确定SQL是否提供了该功能,以根据用户输入确定在运行时传递哪些参数

create procedure dbo.STOREDPROC
(
@PARAM1 nvarchar(20),
@PARAM2 nvarchar(20)
)

需要关键字过程和参数之间的逗号

我不确定我是否正确理解了你的问题…你只是问这个吗

-- get the data
declare @param1 nvarchar(20)
declare @param2 nvarchar(20)

select @param1 = SomeColumn, @param2 = SomeOtherColumn
from SomeTable
where SomeInput = 'user input'

-- execute the proc
exec dbo.STOREDPROC @param1, @param2

您使用的是什么数据库技术?我猜是SQL Server。是的。你的例子就是你是怎么做的,我不明白你在问什么。不是所有参数都是“动态”的吗?或者您的意思是要动态定义参数名称和类型?举个例子会有帮助。@user1153057:我不理解你的解释。参数(
@param1
等)从何而来?我以为它们是查询所基于的表中的列。嗨,让我澄清一下,我想要实现的是如下。