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

时间:2012-01-17 02:42:13

标签: sql sql-server

我似乎无法找到任何具体到我想要做的事情。 是否可以将动态参数传递给sp?

CREATE DBO.STOREDPROC
(
@PARAM1 nvarchar(20)
@PARAM2 nvarchar(20)
)

将根据用户输入从表中定义和选择@PARAM1@PARAM2

让我澄清一下,我想要实现的目标如下。根据用户的输入,我们选择 A B ,如果选择 A ,则传递的参数将为@param1和{ {1}},如果选择 B @param2,则会传递@param3

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

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解你的问题......你只是要求这个吗?

-- 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

答案 1 :(得分:1)

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

参数之间需要关键字 PROCEDURE 逗号 ...