Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Parâmetros de procedimento armazenado do SQL Server


O SQL Server não permite passar parâmetros para um procedimento que você não definiu. Acho que o mais próximo que você pode chegar desse tipo de design é usar parâmetros opcionais como:
CREATE PROCEDURE GetTaskEvents
    @TaskName varchar(50),
    @ID int = NULL
AS
BEGIN
-- SP Logic
END;

Você precisaria incluir todos os parâmetros possíveis que você pode usar na definição. Então você estaria livre para chamar o procedimento de qualquer maneira:
EXEC GetTaskEvents @TaskName = 'TESTTASK', @ID = 2;
EXEC GetTaskEvents @TaskName = 'TESTTASK'; -- @ID gets NULL here