sql >> Databasteknik >  >> RDS >> Sqlserver

Kan jag ha en valfri OUTPUT-parameter i en lagrad procedur?

Både ingångs- och utgångsparametrar kan tilldelas standardvärden. I det här exemplet:

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

den första parametern krävs, och den andra och tredje är valfria - om de inte ställs in av anropsrutinen kommer de att tilldelas standardvärdena. Försök att smussla med det och följande testsamtalsrutin i SSMS med olika värden och inställningar för att se hur allt fungerar tillsammans.

DECLARE @Output int

SET @Output = 3

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

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


  1. Hur kan jag få Oracle-talvärden till .NET utan nollor?

  2. Bevilja exekveringsbehörighet för en användare på alla lagrade procedurer i databasen?

  3. Följ med oss ​​i Las Vegas för SQLintersection och spara $100

  4. Få LÄNGDEN av en LONG RAW