Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Parameter für gespeicherte SQL Server-Prozeduren

SQL Server erlaubt Ihnen nicht, Parameter an eine Prozedur zu übergeben, die Sie nicht definiert haben. Ich denke, dass Sie dieser Art von Design am nächsten kommen können, wenn Sie optionale Parameter wie diese verwenden:

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

Sie müssten alle möglichen Parameter einbeziehen, die Sie verwenden könnten in der Definition. Dann können Sie die Prozedur so oder so aufrufen:

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