Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Parametri della procedura memorizzata di SQL Server

SQL Server non consente di passare parametri a una procedura non definita. Penso che il più vicino possibile a questo tipo di design sia utilizzare parametri opzionali come questo:

CREATE PROCEDURE GetTaskEvents
    @TaskName varchar(50),
    @ID int = NULL
AS
BEGIN
-- SP Logic
END;

Dovresti includere ogni possibile parametro che potresti utilizzare nella definizione. Quindi saresti libero di chiamare la procedura in entrambi i modi:

EXEC GetTaskEvents @TaskName = 'TESTTASK', @ID = 2;
EXEC GetTaskEvents @TaskName = 'TESTTASK'; -- @ID gets NULL here