Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Параметри на съхранена процедура на SQL Server

SQL Server не ви позволява да предавате параметри на процедура, която не сте дефинирали. Мисля, че най-близкото до този вид дизайн е да използвате незадължителни параметри като така:

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

Ще трябва да включите всеки възможен параметър, който може да използвате в дефиницията. Тогава ще бъдете свободни да извикате процедурата по един или друг начин:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при опит за избор на x редове от DB2 (V4R5M0) чрез сървър, свързан с sql сървър, използващ OPENQUERY

  2. Не може да се регистрира екземпляр по подразбиране MSSQLSERVER в SQL Server 2008

  3. Рекурсивна заявка, при която котвата и членът имат обединения

  4. Закръгляване на милисекунди в T-SQL

  5. Конкатениране на редове от изчислена колона с псевдоним