sql >> Databáze >  >> RDS >> Sqlserver

Mohu mít v uložené proceduře volitelný parametr OUTPUT?

Vstupním i výstupním parametrům lze přiřadit výchozí hodnoty. V tomto příkladu:

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

první parametr je povinný a druhý a třetí jsou volitelné – pokud nejsou nastaveny volající rutinou, budou jim přiřazeny výchozí hodnoty. Zkuste si s tím a následující rutinou testovacího volání v SSMS pohrát pomocí různých hodnot a nastavení, abyste viděli, jak to všechno dohromady funguje.

DECLARE @Output int

SET @Output = 3

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

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


  1. Jaké jsou praktické rozdíly mezi `REPLACE` a `INSERT ... ON DUPLICATE KEY UPDATE` v MySQL?

  2. Převod MyISAM na InnoDB. Příznivý? Následky?

  3. Chyba kódování Postgres UTF8 při vkládání obrázků přes Javu

  4. Jsou MySql Views dynamické a efektivní?