sql >> Database >  >> RDS >> Sqlserver

Kan ik een optionele OUTPUT-parameter hebben in een opgeslagen procedure?

Aan zowel invoer- als uitvoerparameters kunnen standaardwaarden worden toegewezen. In dit voorbeeld:

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

de eerste parameter is vereist, en de tweede en derde zijn optioneel - indien niet ingesteld door de aanroepende routine, zullen ze de standaardwaarden toegewezen krijgen. Probeer ermee te rommelen en de volgende testoproeproutine in SSMS met verschillende waarden en instellingen om te zien hoe het allemaal samenwerkt.

DECLARE @Output int

SET @Output = 3

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

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


  1. Hoe kan ik dubbele rijen verwijderen?

  2. Microsoft SQL Server Management Studio verkrijgen en installeren

  3. Oracle-listener werkt niet en start niet

  4. MySQL + htaccess mod_rewrite?