sql >> Databasteknik >  >> RDS >> Sqlserver

Är ett returvärde på 0 alltid en framgång i lagrade procedurer?

Nej, du kan lämna tillbaka något själv

exempel

CREATE PROC pr_test AS 
SELECT 1/0

RETURN 0
GO

Kör det nu

DECLARE @i INT
exec @i = pr_test

SELECT @i  -- will be 0

DROP PROC pr_test

Låt oss nu göra det igen utan retursatsen

CREATE PROC pr_test2 AS 
SELECT 1/0

GO

DECLARE @i INT
exec @i = pr_test2

SELECT @i  -- will be - 6

Bättre att använda en output parameter för att skicka tillbaka statusar och/eller meddelanden



  1. Oracle 10:Använder HEXTORAW för att fylla i blobdata

  2. Visa en tabell i varje loop med databasvärden

  3. Java Hibernate Check MySQL-replikering är synkroniserad

  4. DROP FUNCTION utan att veta antalet/typ av parametrar?