Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy mogę mieć opcjonalny parametr WYJŚCIOWY w procedurze składowanej?

Zarówno parametry wejściowe, jak i wyjściowe mogą mieć przypisane wartości domyślne. W tym przykładzie:

CREATE PROCEDURE MyTest
  @Data1 int
 ,@Data2 int = 0
 ,@Data3 int = null output

AS

PRINT @Data1
PRINT @Data2
PRINT isnull(@Data3, -1)

SET @Data3 = @Data3 + 1

RETURN 0

pierwszy parametr jest wymagany, a drugi i trzeci są opcjonalne -- jeśli nie zostaną ustawione przez procedurę wywołującą, zostaną im przypisane wartości domyślne. Spróbuj poeksperymentować z nim i poniższą procedurą wywołania testowego w SSMS przy użyciu różnych wartości i ustawień, aby zobaczyć, jak to wszystko działa.

DECLARE @Output int

SET @Output = 3

EXECUTE MyTest
  @Data1 = 1
 ,@Data2 = 2
 ,@Data3 = @Output output

PRINT '---------'
PRINT @Output


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Wystąpiła nieprawidłowa operacja zmiennoprzecinkowa

  2. Dlaczego UDF jest o wiele wolniejszy niż podzapytanie?

  3. Pobierz>901 wierszy z połączonego serwera SQL Server 2008 do Active Directory

  4. Jak wstawić dane pliku binarnego do binarnego pola SQL za pomocą prostej instrukcji INSERT?

  5. Czas zbierania alarmów w chmurze Spotlight