sql >> Database teknologi >  >> RDS >> Sqlserver

Kan jeg have en valgfri OUTPUT-parameter i en lagret procedure?

Både input- og outputparametre kan tildeles standardindstillinger. I dette eksempel:

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ørste parameter er påkrævet, og den anden og tredje er valgfri - hvis den ikke er indstillet af den kaldende rutine, vil de blive tildelt standardværdierne. Prøv at rode rundt med det og den følgende test-opkaldsrutine i SSMS ved hjælp af forskellige værdier og indstillinger for at se, hvordan det hele fungerer sammen.

DECLARE @Output int

SET @Output = 3

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

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


  1. Ingen brugerinteraktivitet Kan jeg stadig få SQL Injection

  2. Indfangning af flere fejlmeddelelser fra en enkelt sætning inde i TRY CATCH

  3. Fejl under adgang til EntityManager - openjpa - WAS liberty-profil

  4. Brug af store bogstaver i dag- og månedsnavne ved formatering af datoer i Oracle