2015-10-29 2 views
0

У меня есть хранимая процедура, которая принимает 10 параметров. Я хочу отправить некоторые из этих параметров при выполнении другой хранимой процедуры. Как я могу это сделать?Возможность отправки параметров хранимой процедуре в SQL Server

Хранится определение процедуры:

create PROCEDURE [dbo].[SP_name] 
    @p1 int = null, 
    @p2 int = null 
    .. 
    .. 
    @p10 int = null 

Выполнить заявление:

exec SP_name valueForP2,vlaueForP5..; 

Есть ли почему сказать EXEC заявление принять лишь некоторые из переменных?

+0

Боковое примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –

ответ

2

Вы можете указать имена параметров в вызове процедуры, другие параметры будут использовать значения по умолчанию.

create PROCEDURE [dbo].[SP_name] 
    @p1 int = null, 
    @p2 int = NULL, 
    @p10 int = NULL 
AS 
    SELECT @p1, @p2, @p10 

GO 

-- Execute using named parameters 
EXEC [SP_name] @p1 = 1, @p10 = 5; 
Смежные вопросы